这篇文章是关于我之前的问题延续 Bind values to checkbox
以下代码我在我的一个php页面中使用过
$Qualification=$_SESSION['Qualification']; // gives value = 1,2,3,
$selectedqualification= explode(",", $Qualification);
$selectedqualification= array_filter($selected);
现在这些值用于绑定到复选框 -
<?php $query = "SELECT * FROM Qualification";
$result = mysqli_query($dbcon,$query);
while($row=mysqli_fetch_array($result)){
?>
<input type='checkbox' value='"<?php $row['Id'] ?> "' name='Qualification[]' <?php if (in_array($row['Id'], $selectedqualification)){ echo "checked"; } ?> /><?php echo $row['Description'] ?><br>
<?php } ?>
这些输出将显示为
[/]Teacher
[/]ENgineer
[/]Doctor
[]Banker
检查三个值的位置。
现在使用表格
中的方法发布提交按钮if(isset($_POST['submit']))
{
$AllQualification="";
print_r($_POST['Qualification']);
foreach($_POST['Qualification'] as $Qualification)
{
$AllQualification .=$Qualification.",";
}
echo $AllQualification
}
输出
Array ( [0] => " " [1] => " " [2] => " " [3] => " ")
'" "," "," "
值未传递给数组。如何获取绑定到数组的值?任何帮助表示赞赏。
答案 0 :(得分:1)
你在复选框值中缺少回声,而且还有空格:
使用它:
value='"<?php echo $row['Id'] ?>"'
答案 1 :(得分:1)
您必须更改下面的复选框html: -
<input type='checkbox' value="<?php echo $row['Id']; ?>" name='Qualification[]' <?php if (in_array($row['Id'], $selectedqualification)){ echo "checked"; } ?> /><?php echo $row['Description'] ?><br>
我改变了(添加了echo
并删除了单引号): -
value="<?php echo $row['Id']; ?>"
答案 2 :(得分:0)
代码中存在很多问题。
1)没有回音,并在下面使用错误的引号,已修复:
<input type="checkbox" value="<?php $row['Id'] ?>" name="Qualification[]" <?php if (in_array($row['Id'], $selectedqualification)){ echo "checked"; } ?> /><?php echo $row['Description'] ?><br>
2)使用implode
,而不是连接它。
$qualification = implode(",",$_POST['Qualification']);
PS:如果数组是空的,请不要忘记添加一个检查。
希望这有帮助。