제출시 체크 박스 값 가져 오기
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.내 마음에 드는 좋은 방법인데, 많은 사람들은 내가 선택한 각 색상을 출력하고 서로 아래에있는 화면에 나타나는 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."; } ?>
목록으로 나타 내기 : (
- ul>은
- ol>로 바꿀 수 있습니다)
<?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 시간 전에 거절 당했어. - 표적이되지 않는 한, 사람들은 원하는대로 자유롭게 투표 할 수있어. 그 증거는 없습니다. 투표에 대한 귀하의 의견은 소음이었고, 신고되었으며, 삭제되었습니다.
이에 대한 답변 : 그것은 단지 일입니다. 나는.
-
==============================
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 용
-
==============================
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."; } ?>
-
==============================
4.인쇄용으로 아래와 같이 사용할 수 있습니다.
인쇄용으로 아래와 같이 사용할 수 있습니다.
print_r($_GET['color']);
또는
var_dump($_GET['color']);
-
==============================
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."; } ?>
-
==============================
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에 주어진대로 각 옵션을 구성하기 위해 여기 루프를 만들었습니다. 그런 다음 반환 된 형식으로 체크해야 할 각 항목을 확인합니다. 이것이 체크 박스가있는 양식을 재현 할 수있는 방법을 단순화해야한다고 생각합니다.
-
==============================
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'; }
-
==============================
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 />"; } ?>
-
==============================
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
'PHP' 카테고리의 다른 글
PHPExcel은 256, 512 및 1024MB의 RAM을 모두 소모합니다. (0) | 2018.09.18 |
---|---|
PHP에서 MySQL * .sql 파일 실행하기 (0) | 2018.09.18 |
PHP 세션 제한 시간 (0) | 2018.09.18 |
PHP는 배열을 SubArray 값으로 정렬합니다. (0) | 2018.09.18 |
HTML 콘텐츠에서 스크립트 태그 제거 (0) | 2018.09.18 |