簡體   English   中英

通過使用每行的復選框更新表中的值的選定行

[英]Update selected rows with value in table by using a checkbox for each row

我試過搜索,但我想我遺漏了一些東西或沒有正確表達自己。

php、sql 和 Codeigniter。

我擁有的是數據庫中的報告列表。

Theese 有一列說明它們是“活動的”1 還是 0。

我想要做的是在列表上添加一個復選框,在我的視圖中打印行,因為我可以選擇,然后當我選擇了行時,我希望能夠按下按鈕並通過發送表單數據更改所選行在數據庫中設置為 1 或 0。

我正在考慮如何呈現它的示例:

echo "<form action='' method='POST'><table>";

foreach($reports->result() as $row)
{ 
   echo "<tr>";
   echo "<td><input type="checkbox" name=""></td>;
   echo "<td>".$row->name."</td>";
   echo "<td>".$row->time."</td>";
   echo "<td>".$row->spot."</td>";
   echo "<td>".$row->priority."</td>";
   echo "</tr>";
} 

echo "<tr><td colspan='5'><input type='submit'></td></tr>";
echo "</table></form>";

最好的是,如果我可以將我選擇的復選框放入一個數組中,例如那會很可愛。

我嘗試過使用 array_push,但我找不到只選擇我選擇發送的那些的方法。 有什么方法可以做到這一點,我不知道嗎?

我找到了一種方法,通過將 id[] 添加到所有復選框名稱中,使選定的復選框成為數組,如下所示:

form_checkbox('id[]',$row->id, FALSE);

我循環了很多這些,可能會得到這個,例如:

<input type="checkbox" name="id[]" value="12340">
<input type="checkbox" name="id[]" value="12353">
<input type="checkbox" name="id[]" value="12367">
<input type="checkbox" name="id[]" value="12389">
<input type="checkbox" name="id[]" value="12391">

然后在我的控制器中,我添加了這個,我的表單對它們執行操作並循環遍歷我檢查過的那些並對它們執行操作。

$arr = array();
if(!empty($_POST['id'])) {
    foreach($_POST['id'] as $selected) {
        $this->db->where('id', $selected);
        $this->db->update('rapporter' , $data);
    }
}else{}

這對我很有用。 現在我只更新我檢查過的行!

如果有人有更有效的方法來做到這一點,我會全神貫注!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM