我得到了这个,我不知道我在这里缺少什么:
<?php
//Some validation for the SUBMIT form
if(isset($_POST['submit'])&&$_POST['submit']=='add'){
$_POST = array_map("mysql_real_escape_string", $_POST); //This little fella is responsible for the mess ¬¬
$campus_string = $_POST['campus']; //To get a checkboxes Array
....
print_r($campus_string); //to see if I am getting the checkboxes when submitting
}
?>
....
//Now inside <body> of the HTML
<form action="" method="post" name="filosofal">
//A little loop to create the checkboxes from a DB
foreach($campi as $keyCampi => $valueCampi){
echo '<tr>
<td>
<input type="checkbox" id="campus[]" name="campus[]" value="'.$value['Id'].','.$valueCampi['Id'].'" />'.$valueCampi['Nombre'].'<br />
</td>
</tr>';
}
</form>
但print_r
没有显示任何内容,在通过POST
提交时未存储数组。希望你能帮助我找出我搞砸的地方。
好吧,我终于明白了,这有点令人尴尬。
在我的代码中,我使用:
$_POST = array_map("mysql_real_escape_string", $_POST);
避免一些编码冲突(比如名字带有's),安全等等。
我评论了这条线,它现在有效(没有添加那部分,因为我不知道它在这个问题上的相关性),不需要做任何改动。
不知道为什么我花了五天时间才找到那个小东西,但现在已经完成了。无论如何,谢谢大家。
答案 0 :(得分:0)
尝试添加
<input type="hidden" name="submit" value="add" />
在你的表单中,if语句将返回false ...
答案 1 :(得分:0)
尝试转储帖子数据:
echo "<pre>"; print_r($_POST); //if you check the radio then it will be listed in your $_POST dump //add action to your form <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <?php foreach($campi as $keyCampi => $valueCampi){ ?> <tr> <td> <input type="checkbox" id="campus[]" name="campus[]" value="<?php echo $valueCampi['Id'].','.$valueCampi['Id']; ?>" /><?php echo $valueCampi['Nombre'].'<br /> </td> </tr>'; <? php } ?> </form>
答案 2 :(得分:-1)
一般来说,我看到它的方式是复选框是ON还是OFF。因此,在我看来,复选框的名称是值。例如:
<input type="checkbox" name="single"> Single?
如果选中该复选框(value =“on”),则答案为是。如果未选中(value =“off”或没有值),则答案为否。因此,我的PHP代码看起来像:
if ($_POST['single'] == 'on')
$single = true;
else
$single = false;
基本上,就我而言,永远不应该设置复选框的“值”。这是我特别喜欢的,而且对我来说效果很好。但是,它可能不适合您的需求。
祝你好运。