제출 시 확인란 값을 가져오는 중
저는 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;
제거할 경우[]
저는 제가 할 때 색깔이 있다는 것을 알아요.color[]
다음과 같은 알림이 표시됩니다.
배열에서 문자열로 변환
제가 원하는 것은 변수에 저장할 수 있도록 확인란의 값입니다.
내가 가장 좋아하는 좋은 방법은 많은 사람들에게 사용하는 것입니다.foreach
선택한 각 색상을 출력하고 서로 아래에 하나씩 화면에 표시합니다.
확인란을 사용할 때는 사용할 수밖에 없습니다.foreach
따라서 어레이에서 하나의 값만 반환됩니다.
다음은 다음을 사용한 예입니다.$_GET
그러나 사용할 수 있습니다.$_POST
그리고 제대로 작동하려면 두 개의 지시어가 두 파일에서 모두 일치하도록 만들어야 합니다.
###HTML 양식
<form action="third.php" method="get">
Red<input type="checkbox" name="color[]" value="red">
Green<input type="checkbox" name="color[]" value="green">
Blue<input type="checkbox" name="color[]" value="blue">
Cyan<input type="checkbox" name="color[]" value="cyan">
Magenta<input type="checkbox" name="color[]" value="Magenta">
Yellow<input type="checkbox" name="color[]" value="yellow">
Black<input type="checkbox" name="color[]" value="black">
<input type="submit" value="submit">
</form>
##PHP($_GET 사용) 사용third.php
당신의 핸들러로서
<?php
$name = $_GET['color'];
// optional
// echo "You chose the following color(s): <br>";
foreach ($name as $color){
echo $color."<br />";
}
?>
빨간색, 녹색, 파란색 및 시안을 색상으로 선택했다고 가정하면 다음과 같이 나타납니다.
빨간.
초록의
파랑색
청록색
##옵션 #2
색상이 선택되었는지 확인할 수도 있습니다.선택하지 않으면 별도의 메시지가 나타납니다.
<?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></ul>
로 대체할 수 있습니다.<ol></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.";
}
?>
(아닙니다.action="get"
또는action="post"
그건…method="get"
또는method="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>
그리고 3위.
또는 특정 필드에 대해 다음 값을 얻을 수 있습니다.
$_POST['color'][0] //for RED
$_POST['color'][1] // for GREEN
제가 제안하는 것은, 얻는 것보다 우편을 사용하는 것이 낫다는 것입니다.여기 포스트 VS get 간의 몇 가지 차이점이 있습니다.
GET 요청에 대한 몇 가지 참고 사항:
- GET 요청을 캐시할 수 있습니다.
- GET 요청은 브라우저 기록에 남아 있습니다.
- GET 요청을 북마크할 수 있습니다.
- 중요한 데이터를 처리할 때는 GET 요청을 사용해서는 안 됩니다.
- GET 요청에 길이 제한이 있습니다.
- GET 요청은 데이터 검색에만 사용해야 합니다.
POST 요청 관련 참고 사항:
- POST 요청은 캐시되지 않음
- POST 요청이 브라우저 기록에 남아 있지 않습니다.
- POST 요청을 북마크할 수 없습니다.
- 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.";
}
?>
아주 간단합니다.
확인란 필드는 입력 텍스트와 같습니다.필드에 아무것도 쓰지 않으면 필드가 존재하지 않는다고 표시됩니다.
<form method="post">
<input type="checkbox" name="check">This is how it works!<br>
<button type="submit" name="submit">Submit</button>
</form>
<?php
if(isset($_POST['submit'])) {
if(!isset($_POST['check'])) {
echo "Not selected!";
}else{
echo "Selected!";
}
}
?>
값 배열을 가져오는 가장 좋은 방법은 각 값입니다.
여기 예제 코드: 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 />";
}
?>
인쇄에만 다음과 같이 사용할 수 있습니다.
print_r($_GET['color']);
또는
var_dump($_GET['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.";
}
?>
아마도 더 나은 방법은 다음과 같이 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
;
우변를만습니다들었수선▁a▁variable다를 .$style
옵션을 수평 또는 수직으로 설정할 수 있습니다.이렇게 하면 확인란을 표시하는 방법이 자주 나타나지 않습니다.다음으로 설정합니다.$name
옵션의 경우 옵션을 유지할 어레이의 이름으로 필요합니다. 각 로 구성했습니다.$options
그런 다음 우리는 반송된 양식에서 확인해야 하는지 각 항목을 확인합니다.확인란을 사용하여 양식을 복제하는 방법을 단순화해야 한다고 생각합니다.
//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']);
특정 값이 선택된 경우 새 변수로 변환하려면 다음을 수행합니다.
// 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';
}
언급URL : https://stackoverflow.com/questions/18421988/getting-checkbox-values-on-submit
'programing' 카테고리의 다른 글
jQuery에서 [0]을 사용하지 않고 첫 번째 요소를 얻으려면 어떻게 해야 합니까? (0) | 2023.08.15 |
---|---|
JSON(jQuery)에서 500개의 오류 처리 (0) | 2023.08.15 |
npm ERR!EEXIST 삭제/코드 거부 (0) | 2023.08.15 |
표 행에서 slideDown(또는 표시) 기능을 사용하는 방법은 무엇입니까? (0) | 2023.08.15 |
어셈블리(ASP)의 웹 응용 프로그램 버전 번호 사용.NET/C#) (0) | 2023.08.15 |