2010-06-27 29 views
0

我有一個php數組,其中包含以前選擇的複選框的mysql值。我正在嘗試做一個編輯頁面來顯示已經選中的複選框,但似乎遇到了問題。我嘗試過不同的方式,但似乎無法得到它的工作。基於php數組的jquery check複選框

這裏是我以前選擇的複選框的PHP數組:

Array 
(
    [0] => 1 
    [1] => 3 
) 

這是我的複選框:

<input type="checkbox" name="company[]" id="company[]" value="1"> 
<input type="checkbox" name="company[]" id="company[]" value="4"> 
<input type="checkbox" name="company[]" id="company[]" value="2"> 
<input type="checkbox" name="company[]" id="company[]" value="3"> 

我似乎無法工作如何獲得的複選框(從PHP數組 - 值1和3)已被選中。

回答

1

這裏是一個服務器端解決方案做創建頁面時。

<?php 
function check_checked($index,$check_array){ 
    if (in_array($index,$check_array)){ echo 'checked="checked"';} 
    } 
$checked=array(1,3); 
?> 
<input type="checkbox" name="company[]" id="company[]" value="1" <?php check_checked(1,$checked);?>> 
<input type="checkbox" name="company[]" id="company[]" value="4" <?php check_checked(4,$checked);?>> 
<input type="checkbox" name="company[]" id="company[]" value="2" <?php check_checked(2,$checked);?>> 
<input type="checkbox" name="company[]" id="company[]" value="3" <?php check_checked(3,$checked);?>> 

如果你打算用JavaScript來做,我會建議將數組打印到帶有json_encode的JS var中,並從那裏開始。不過,服務器端更有意義,因爲你已經擁有了數據。

+1

注意:如果您不希望Firefox刷新/重新加載頁面上的選中值,請添加autocomplete =「false」。 – 2010-06-28 00:16:00

+0

當然,那個autocomplete屬性是非標準的,並且不會被驗證,但是如果你沒有包含它,FF會真的和你混淆。 @SoulieBaby我想提到這不是最清潔或最好的解決方案,細節明智的,但建議作爲一種建立。它可以用許多方式重構。 – JAL 2010-06-28 20:04:15

1

的simpliest方法是做它在服務器端:

foreach ($array as $value) { 
    $che = $value? "checked":""; 
    print '<input type="checkbox" name="company[]" id="company[]" value="1" '.$che.'>'; 
}