复选框的二进制值不存储到数组中

时间:2017-10-06 06:17:50

标签: php arrays

这篇文章是关于我之前的问题延续 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] => " ")
'" "," "," "

值未传递给数组。如何获取绑定到数组的值?任何帮助表示赞赏。

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:如果数组是空的,请不要忘记添加一个检查。

希望这有帮助。