我只想阅读检查了哪些复选框,但我总是得到索引未定义的消息,而$ _GET则没有。
所以也许你可以告诉我为什么,以及如何解决它。我的PHP代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>title</title>
</head>
<body>
<form action="checkbox.php">
<input type="hidden" name="sent" value="yes">
<input type="checkbox" name="name[]" value="hello" checked>hello<br>
<input type="checkbox" name="name[]" value="cu"checked>cu<br>
<input type="checkbox" name="name[]" value="test"checked>test<br>
<input type="checkbox" name="name[]" value="test2"checked>test2<br>
<input type="checkbox" name="name[]" value="bond"checked>bond<br>
<input type="submit">
</form>
<?php
error_reporting(E_ALL);
var_dump($_GET);
print_r($_GET["sent"]);
$sent = $_GET['sent'];
$name = $_GET['name'];
if ($sent == 'yes') {
$name_test = implode(', ',$name);
print_r($name_test);
}
?>
</body>
</html>
如果我在windows cmd中运行脚本,使用xampp我得到以下响应:
PS C:\xampp\php> php-cgi G:\1\checkbox.php
X-Powered-By: PHP/5.5.11
Content-type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>title</title>
</head>
<body>
<form action="checkbox.php">
<input type="hidden" name="sent" value="yes">
<input type="checkbox" name="name[]" value="hello" checked>hello<br>
<input type="checkbox" name="name[]" value="cu"checked>cu<br>
<input type="checkbox" name="name[]" value="test"checked>test<br>
<input type="checkbox" name="name[]" value="test2"checked>test2<br>
<input type="checkbox" name="name[]" value="bond"checked>bond<br>
<input type="submit">
</form>
array(1) {
["G:\1\checkbox_php"]=>
string(0) ""
}
<br />
<b>Notice</b>: Undefined index: sent in <b>G:\1\checkbox.php</b> on line <b>22</b><br />
<br />
<b>Notice</b>: Undefined index: sent in <b>G:\1\checkbox.php</b> on line <b>23</b><br />
<br />
<b>Notice</b>: Undefined index: name in <b>G:\1\checkbox.php</b> on line <b>24</b><br />
</body>
</html>
我无法理解为什么$ _GET变量中没有任何内容。这段代码就是一个例子。我在德国的教程网站上找到了它。
http://aktuell.de.selfhtml.org/artikel/php/checkboxen/
我通过复制代码来测试它,只需为你更改名称。
答案 0 :(得分:0)
猜猜这是你想要的输出。
你的php是这样的
<?php
error_reporting(E_ALL);
if(isset($_GET["sent"]))
{
$sent = $_GET['sent'];
if ($sent == 'yes') {
if(isset($_GET['name'])){
echo "<h2> These boxes were checked</h2>";
foreach($_GET['name'] as $name)
{
echo $name . "<br />";
}
}
else
echo "nothing was checked";
}
}
?>
当您点击提交时,它会给出您想要的结果。
答案 1 :(得分:0)
您遇到的错误是因为在您第一次加载脚本时$_GET
为空,直到您提交表单$_GET['sent']
并且$_GET['name']
将分配值我已做出此修复它有效:)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>title</title>
</head>
<body>
<form action="checkbox.php">
<input type="hidden" name="sent" value="yes">
<input type="checkbox" name="name[]" value="hello" checked>hello<br>
<input type="checkbox" name="name[]" value="cu"checked>cu<br>
<input type="checkbox" name="name[]" value="test"checked>test<br>
<input type="checkbox" name="name[]" value="test2"checked>test2<br>
<input type="checkbox" name="name[]" value="bond"checked>bond<br>
<input type="submit">
</form>
<?php
if (array_key_exists('sent', $_GET) || array_key_exists('name', $_GET))
{
error_reporting(E_ALL);
var_dump($_GET);
print_r($_GET["sent"]);
$sent = $_GET['sent'];
$name = $_GET['name'];
if ($sent == 'yes') {
$name_test = implode(', ',$name);
print_r($name_test);
}
}
?>
</body>
</html>