保存选中的值复选框数组POST

时间:2012-07-26 15:46:44

标签: php arrays checkbox

我有一个复选框列表,并将选中的值保存在数组中。但是,当有人点击“提交”并且他们收到错误时,他们所有的复选框都会被遗忘。通常我会让脚本记住带有像

这样的代码的复选框

IF复选框值= OK {echo checked =“checked”}

但是,现在我将它保存在一个数组中,我不知道该怎么做?

<?php

$sql = "SELECT merknaam FROM merken";
$result = mysql_query($sql);

while ($row = mysql_fetch_array($result)) {
    echo "&nbsp;&nbsp;<input type=\"checkbox\" name=\"merken[]\" value='" . $row['merknaam'] . "'>&nbsp;" . $row['merknaam'] . " <Br />  ";
}

?>

这是我用于复选框的代码。接下来,我使用以下代码显示数组:

$merkenstring = implode(",", $_POST['merken']);

echo $merkenstring;

结果:AC Ryan,Adidas,Agu,Cargo

我希望有人可以给我一个代码示例!

2 个答案:

答案 0 :(得分:1)

假设您要将此内容发布到同一页面,并且$_POST['merken']在发生错误后仍然可用,请使用in_array()针对{{1}中的当前设置测试每个复选框的值}:

$_POST

如果将其发布到其他脚本,则(与返回到上一个脚本的任何帖子值一样)需要将数组存储在while ($row = mysql_fetch_array($result)) { // If the current value is in the $_POST['merken'] array // and the array has been initialized... if (isset($_POST['merken']) && is_array($_POST['merken']) && in_array($row['merknaam'], $_POST['merken'])) { // Set the $checked string $checked = "checked='checked'"; } // Otherwise $checked is an empty string else $checked = ""; // And incorporate it into your <input> tag echo "&nbsp;&nbsp;<input $checked type=\"checkbox\" name=\"merken[]\" value='" . $row['merknaam'] . "'>&nbsp;" . $row['merknaam'] . " <Br /> "; //----------------------^^^^^^^^^^ } 中,并与$_SESSION中的$_SESSION['merken']进行比较1}}来电。

答案 1 :(得分:0)

假设$row['merknaam']是复选框值,$_POST['merken']包含已检查复选框值的数组,那么您只需要检查该值是否在数组中:

if (in_array($row['merknaam'], $_POST['merken'])) {
   // this checkbox should be checked
}