2017-10-06 23 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,而不是串聯的。注意:如果數組爲空或者不爲空,請不要忘記添加一個檢查。如果數組是空的,則不要忘記添加一個檢查數組。

希望這會有所幫助。