2017-02-17 76 views
2

我有一個可由用戶更改的項目數組。該數組中的每一項可以通過下面的簡單行編輯:PHP在數組中設置可編輯複選框變量

foreach($items as $item) { 
    <tr> 
     <td><input type="text" value="<?php echo esc_attr($item['name']); ?>" /></td> 
     <td><input type="checkbox" name="" value="" /></td> 
     <input type="hidden" name="items[<?php echo $i; ?>][ischecked]" value="<?php echo esc_attr($item['ischecked']); ?>" /> 
    </tr> 
} 

$item['name']成功地被改變,我要問的是複選框如何設置存儲值true,如果複選框被選中,以$item['ischecked']

+1

你問你是否在你的數據庫中有'$ item ['defectscked']'填充了,如何在生成html時檢查複選框?如果是這樣,你可以執行'」<?php if(!空($ item ['infarcked']))echo'checked'?> />'。如果你不是這個意思,我不知道你需要什麼;你的解釋需要更清楚。 – Rasclatt

+1

此外,我有些驚訝的輸入生成值'name'屬性。 – Rasclatt

+0

是的你是正確的Theres也意味着一個隱藏的輸入與名稱集,我已經更新了我最初的問題代碼 – grasesed

回答

0

使用隱藏輸入似乎是一種解決方法,而不是一個乾淨的直接解決方案。

你可以根據自己的情況修改以下代碼片段嗎?

foreach($items as $i=>$item){ 
    echo "<tr> "; 
     echo "<td><input type=\"text\" name=\"name[$i]\" value=\"",esc_attr($item['name']),"\" /></td>"; 
     echo "<td><input type=\"checkbox\" name=\"check_name[$i]\" value=\"true\"",(isset($_POST["check_name[$i]"])?" checked":"")," /></td>"; 
    echo "</tr>"; 
    // declare a variable for use in future queries, change/use this as/if needed 
    $check[$i]=(isset($_POST["check_name[$i]"])?"true":"false"); 
} 

我沒有測試這個解決方案,所以讓我知道是否有什麼是錯誤的。