抱歉这个愚蠢的问题,虽然我对PHP有点新鲜。 我已经尝试了很多其他方法来做到这一点,但根本无法让它工作......实际上我希望它能让我可以在每个复选框上附加不同的功能,当用户选择复选框或另一个,并单击提交按钮,它会触发特定的功能。但我无法让复选框工作。它只能与一个选中的一个一起工作,或者如果我检查第一个然后是第四个,它输出第四个代码。 这样做的其他任何方式? 这是我的尝试:
1.PHP
<form method="POST" action="2.php">
<input type="checkbox" name="test[]" value="test1" />test1<br />
<input type="checkbox" name="test[]" value="test2" />test2<br />
<input type="submit" name="submit" value="submit" />
</form>
2.PHP
$val = $_POST['test'];
if(isset($val)==true){
for($i = 0 ; $i<count($val) ; $i++){
if($val=='test1'){
echo $val;
die();
}elseif($val=='test2'){
echo $val;
die();
}else{
echo "fail";
die();
}
}
}else{
return false;
}
谢谢。
答案 0 :(得分:1)
你的代码非常接近,你只需要考虑数组索引。
for ($i = 0, $length = count($val); $i < $length; $i++)
{
// add [$i] to $val to access an index of $val
if ($val[$i] == 'test1')
答案 1 :(得分:1)
尝试:
$vals = $_POST['test'];
$valsCount = count($vals);
if ($valsCount > 0) {
foreach ($vals as $val) {
switch ($val) {
case 'test1':
echo $val;
break;
case 'test2':
echo $val;
break;
default:
echo 'Fail';
break;
}
}
}
答案 2 :(得分:1)
作为另一种选择,如果您希望根据复选框的值调用函数,则可以执行以下操作...
为简单起见,我将它全部压缩成一个文件,但这是一般的想法...
<form method="post" action="<?php echo $_SREVER['PHP_SELF']; ?>">
<input type="checkbox" name="boxes[]" value="box1">Box 1</input><br />
<input type="checkbox" name="boxes[]" value="box2">Box 2</input><br />
<input type="checkbox" name="boxes[]" value="box3">Box 3</input><br />
<input type="checkbox" name="boxes[]" value="box4">Box 4</input><br />
<input type="checkbox" name="boxes[]" value="box5">Box 5</input><br />
<input type="submit" value="Go!" />
</form>
<?php
class boxProcessor
{
public function box1()
{
echo "<p>You've found box 1.</p>";
}
public function box2()
{
echo "<p>You've found box 2.</p>";
}
public function box3()
{
echo "<p>You've found box 3.</p>";
}
public function box4()
{
echo "<p>You've found box 4.</p>";
}
public function box5()
{
echo "<p>You've found box 5.</p>";
}
}
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$boxes = $_POST['boxes'];
if(empty($boxes)){
echo "<p>Nothing to do ...</p>";
} else {
$proc = new boxProcessor();
foreach($boxes as $box){
$proc->$box();
}
}
}
?>
答案 3 :(得分:0)
尝试在1.php中将名称从test1[]
更改为test1
,并检查第7-2行的拼写错误。
希望这会有所帮助。
答案 4 :(得分:0)
有几个问题可能与真正的问题无关:
1)你谈到“第一”和“第四”复选框......但你的代码只显示两个复选框
2)您的示例拼错了“tes2”(因此PHP不会/无法找到它)
3)你应该摆脱所有“die()”条款
建议:
点击此链接:
http://www.html-form-guide.com/php-form/php-form-checkbox.html