2017-10-06 32 views
1

这篇文章是关于我刚才的问题继续 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

'$ selectedqualification'从哪里来?你有'$ selected'变量。你不觉得吗? –

+0

抱歉,我已经更新了我的问题 –

回答

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> 

CHANGE I MADE(添加了echo并删除了单引号): -

value="<?php echo $row['Id']; ?>" 
1

人你缺少的复选框值的回声,也空间是存在的:

使用本:

value='"<?php echo $row['Id'] ?>"' 
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,而不是串联的。注意:如果数组为空或者不为空,请不要忘记添加一个检查。如果数组是空的,则不要忘记添加一个检查数组。

希望这会有所帮助。