복붙노트

제출시 체크 박스 값 가져 오기

PHP

제출시 체크 박스 값 가져 오기

6 가지 옵션이 있는데 두 번째 페이지의 변수에 체크 값을 저장하고 싶습니다. 어떻게해야합니까?

<form action="third.php" method="get">
    <!-- Choices -->
    Red     <input type="checkbox" name="color[]" id="color" value="Red">
    Green   <input type="checkbox" name="color[]" id="color" value="Green">
    Blue    <input type="checkbox" name="color[]" id="color" value="Blue">
    Cyan    <input type="checkbox" name="color[]" id="color" value="Cyan">
    Magenta <input type="checkbox" name="color[]" id="color" value="Magenta">
    Yellow  <input type="checkbox" name="color[]" id="color" value="Yellow">
    Black   <input type="checkbox" name="color[]" id="color" value="Black">
    <!-- Submit -->
    <input type="submit" value="submit">
</form>

그리고 third.php 페이지 :

$color = $_GET['color'];

echo 'The color is '.$color;

[]를 제거하면 색상이 켜지 며 색상을 좋아할 때 다음과 같이 알림이 표시됩니다.

내가 원하는 것은 check, checkboxes의 값을 변수에 저장할 수 있기 때문입니다.

해결법

  1. ==============================

    1.내 마음에 드는 좋은 방법인데, 많은 사람들은 내가 선택한 각 색상을 출력하고 서로 아래에있는 화면에 나타나는 foreach를 사용하는 것이 좋습니다.

    내 마음에 드는 좋은 방법인데, 많은 사람들은 내가 선택한 각 색상을 출력하고 서로 아래에있는 화면에 나타나는 foreach를 사용하는 것이 좋습니다.

    체크 박스를 사용할 때 foreach를 사용하는 것 외에는 선택의 여지가 없기 때문에 배열에서 하나의 값만 반환됩니다.

    다음은 $ _GET을 사용하는 예제입니다. 그러나 $ _POST를 사용할 수 있으며 제대로 작동하려면 두 파일에서 두 지시어를 모두 일치시켜야합니다.

    <form action="third.php" method="get">
        Red<input type="checkbox" name="color[]" id="color" value="red">
        Green<input type="checkbox" name="color[]" id="color" value="green">
        Blue<input type="checkbox" name="color[]" id="color" value="blue">
        Cyan<input type="checkbox" name="color[]" id="color" value="cyan">
        Magenta<input type="checkbox" name="color[]" id="color" value="Magenta">
        Yellow<input type="checkbox" name="color[]" id="color" value="yellow">
        Black<input type="checkbox" name="color[]" id="color" value="black">
        <input type="submit" value="submit">
    </form>
    
    <?php
    
    $name = $_GET['color'];
    
    // optional
    // echo "You chose the following color(s): <br>";
    
    foreach ($name as $color){ 
        echo $color."<br />";
    }
    
    ?>
    

    적색, 녹색, 청색 및 사이 안색을 색상으로 선택한 경우 다음과 같이 나타납니다.

    빨간 녹색 푸른 시안 색

    색상이 선택되었는지 확인할 수도 있습니다. 아무도 선택하지 않으면 별도의 메시지가 나타납니다.

    <?php
    
    $name = $_GET['color'];
    
    if (isset($_GET['color'])) {
        echo "You chose the following color(s): <br>";
    
        foreach ($name as $color){
            echo $color."<br />";
        }
    } else {
        echo "You did not choose a color.";
    }
    
    ?>
    

    목록으로 나타 내기 : (

        로 바꿀 수 있습니다)

        <?php
        
        $name = $_GET['color'];
        
        if (isset($_GET['color'])) {
            echo "You chose the following color(s): <br>";
            echo "<ul>";
            foreach ($name as $color){
                echo "<li>" .$color."</li>";
            }
            echo "</ul>";
        } else {
            echo "You did not choose a color.";
        }
        
        ?>
        

        깃발 : (8 월 5 일, 2016)

        나는 오늘 아침에 2 개의 downvotes를 받았고 나의 의견은 삭제되었다. 왜? 이 일을하는 사람은 누구나 악의적 인 짓을하는 것입니다. 응답은 upvotes 및 지금 이것 만 받았다. 나는 심각하게 의미한다. wtf? - Fred -ii- 1 시간 전에 거절 당했어. - 표적이되지 않는 한, 사람들은 원하는대로 자유롭게 투표 할 수있어. 그 증거는 없습니다. 투표에 대한 귀하의 의견은 소음이었고, 신고되었으며, 삭제되었습니다.

        이에 대한 답변 : 그것은 단지 일입니다. 나는.

      1. ==============================

        2.(그것은 action = "get"또는 action = "post"가 아니라 method = "get"또는 method = "post"

        (그것은 action = "get"또는 action = "post"가 아니라 method = "get"또는 method = "post"

        post 메서드를 사용하여이를 수행하십시오.

        <form action="third.php" method="POST">
            Red<input type="checkbox" name="color[]" id="color" value="red">
            Green<input type="checkbox" name="color[]" id="color" value="green">
            Blue<input type="checkbox" name="color[]" id="color" value="blue">
            Cyan<input type="checkbox" name="color[]" id="color" value="cyan">
            Magenta<input type="checkbox" name="color[]" id="color" value="Magenta">
            Yellow<input type="checkbox" name="color[]" id="color" value="yellow">
            Black<input type="checkbox" name="color[]" id="color" value="black">
            <input type="submit" value="submit">
        </form>
        

        및 third.php 또는 특정 분야에 대한 가치를 얻을 수 있습니다 : $ _POST [ 'color'] [0] // RED의 경우 $ _POST [ 'color'] [1] // GREEN 용

      2. ==============================

        3.내가 제안하는 것은 얻는 것보다는 게시물을 사용하는 것이 더 낫다는 것이다. 게시물 VS 얻을 사이의 몇 가지 차이점은 여기에 있습니다

        내가 제안하는 것은 얻는 것보다는 게시물을 사용하는 것이 더 낫다는 것이다. 게시물 VS 얻을 사이의 몇 가지 차이점은 여기에 있습니다

        GET 요청에 대한 몇 가지 참고 사항 :

        POST 요청에 대한 몇 가지 참고 사항 :

        HTML 코드

                    <html>
            <head></head>
            <body>
            <form action="output.php" method="post">
            Red<input type="checkbox" name="color[]" id="color" value="red">
            Green<input type="checkbox" name="color[]" id="color" value="green">
            Blue<input type="checkbox" name="color[]" id="color" value="blue">
            Cyan<input type="checkbox" name="color[]" id="color" value="cyan">
            Magenta<input type="checkbox" name="color[]" id="color" value="Magenta">
            Yellow<input type="checkbox" name="color[]" id="color" value="yellow">
            Black<input type="checkbox" name="color[]" id="color" value="black">
            <input type="submit" value="submit">
            </form>
            <body>
            </html>
        

        PHP 코드

            <?php
        
        
            if(isset($_POST['color'])) {
            $name = $_POST['color'];
        
            echo "You chose the following color(s): <br>";
            foreach ($name as $color){
            echo $color."<br />";
            }} // end brace for if(isset
        
            else {
        
            echo "You did not choose a color.";
        
            }
        
            ?>
        
      3. ==============================

        4.인쇄용으로 아래와 같이 사용할 수 있습니다.

        인쇄용으로 아래와 같이 사용할 수 있습니다.

        print_r($_GET['color']);
        

        또는

        var_dump($_GET['color']);
        
      4. ==============================

        5.$ _POST [ 'color']의 값은 설정되어 있는지 확인한 후에 만 ​​읽어야한다고 생각합니다.

        $ _POST [ 'color']의 값은 설정되어 있는지 확인한 후에 만 ​​읽어야한다고 생각합니다.

        <?php
        
        
            if(isset($_POST['color'])) {
              $name = $_POST['color'];  
        
            echo "You chose the following color(s): <br>";
            foreach ($name as $color){
           echo $color."<br />";
          }} // end brace for if(isset
        
        else {
        
        echo "You did not choose a color.";
        
        }
        
        ?>
        
      5. ==============================

        6.아마도 더 좋은 방법은 PHP 함수 in_array ()를 다음과 같이 사용하는 것입니다.

        아마도 더 좋은 방법은 PHP 함수 in_array ()를 다음과 같이 사용하는 것입니다.

        $style='V';//can be 'V'ertical or 'H'orizontal
        $lineBreak=($style=='V')?'<br>':'';
        $name='colors';//the name of your options
        $Legent="Select your $name";//dress it up in a nice fieldset with a ledgent
        $options=array('red','green','blue','orange','yellow','white','black');
        $boxes='';//innitiate the list of tickboxes to be generated
        if(isset($_REQUEST["$name"])){ 
        //we shall use $_REQUEST but $_POST would be better
           $Checked=$_REQUEST["$name"];
        }else{
           $Checked=array();
        }
        foreach($options as $option){
        $checkmark=(in_array($option,$Checked))?'checked':'';
        $nameAsArray=$name.'[]';//we would like the returned data to be in an array so we end with []
        $boxes.=($style=='V')?"<span class='label2' align='right'><b>$option : </b></span>":"<b>$option </b>";
        $boxes.="<input style='width:2em;' type='checkbox' name='$nameAsArray' id='$option' value='$option' $checkmark >$lineBreak";
        }
        
        echo<<<EOF
        <html>
        <head></head>
        <body>
        <form name="Update" method="GET" action="{$_SERVER['PHP_SELF']}">\n
        <fieldset id="tickboxes" style="width:25em;">
        <legend>{$Legent}</legend>
        {$boxes}
        </fieldset>
        <button type="submit" >Submit Form</button>
        </form>
        <body>
        </html>
        EOF
        ;
        

        우선 우리는 옵션을 수평 또는 수직으로 원한다면 변수 $ 스타일을 설정했다. 이것은 우리가 어떻게 체크 박스를 표시하는지 빈약 할 것이다. 다음으로 옵션에 대한 $ 이름을 설정합니다.이 옵션은 옵션을 유지하려는 배열의 이름으로 필요합니다. 배열 $ options에 주어진대로 각 옵션을 구성하기 위해 여기 루프를 만들었습니다. 그런 다음 반환 된 형식으로 체크해야 할 각 항목을 확인합니다. 이것이 체크 박스가있는 양식을 재현 할 수있는 방법을 단순화해야한다고 생각합니다.

      6. ==============================

        7.변수를 선택한 경우 새 변수로 특정 값을 변환하려면 다음을 수행하십시오.

        변수를 선택한 경우 새 변수로 특정 값을 변환하려면 다음을 수행하십시오.

        // Retrieve array color[] and set as variable    
        $colors = $_GET['color'];
        // Use array_search to find the key for "red"
        $key_red = array_search('red', $colors);
        // If "red" exists, the key will be an integer (or FALSE)
        if (is_int($key_red)) {
            $red_color = 'Red was selected';
        }
        
      7. ==============================

        8.foreach는 값 배열을 얻는 가장 좋은 방법입니다.

        foreach는 값 배열을 얻는 가장 좋은 방법입니다.

        여기 예제 코드 : html 코드 :

        <form action="send.php" method="post">
            Red<input type="checkbox" name="color[]" id="color" value="red">
            Green<input type="checkbox" name="color[]" id="color" value="green">
            Blue<input type="checkbox" name="color[]" id="color" value="blue">
            Cyan<input type="checkbox" name="color[]" id="color" value="cyan">
            Magenta<input type="checkbox" name="color[]" id="color" value="Magenta">
            Yellow<input type="checkbox" name="color[]" id="color" value="yellow">
            Black<input type="checkbox" name="color[]" id="color" value="black">
            <input type="submit" value="submit">
        </form>
        

        phpcode :

        <?php
        
        $name = $POST['color'];
        
        
        
        foreach ($name as $color){ 
            echo $color."<br />";
        }
        
        ?>
        
      8. ==============================

        9.

        //retrive check box and gender value
        $gender=$row['gender'];
        $chkhobby=$row['chkhobby'];
        <tr>
            <th>GENDER</th>
            <td>
                    Male<input type="radio" name="gender" value="1" <?php echo ($gender== '1') ?  "checked" : "" ;  ?>/>
                    Female<input type="radio" name="gender" value="0" <?php echo ($gender== '0') ?  "checked" : "" ;  ?>/>
        
            </td>
        </tr>
        <tr>
            <th>Hobbies</th>
            <td>
                <pre><?php //print_r($row);
        
                    $hby = @explode(",",$row['chkhobby']);
                    //print_r($hby);
                ?></pre>
                read<input id="check_1" type="checkbox" name="chkhobby[]" value="read" <?php if(in_array("read",$hby)){?> checked="checked"<?php }?>>
                write<input id="check_2" type="checkbox" name="chkhobby[]" value="write" <?php if(in_array("write",$hby)){?> checked="checked"<?php }?>>
                play<input id="check_4" type="checkbox" name="chkhobby[]" value="play" <?php if(in_array("play",$hby)){?> checked="checked"<?php }?>>
        
        
            </td>
            </tr>
        //update
        $gender=$_POST['gender'];
        $chkhobby = implode(',', $_POST['chkhobby']);
        

    from https://stackoverflow.com/questions/18421988/getting-checkbox-values-on-submit by cc-by-sa and MIT license