在Php中,我們都知道,像Asp.Net的GridView等本身沒有內置控件。我使用Html的<table>
來構建網格並將行的id保存在一個隱藏字段中。我還在每行的開頭放置了一個複選框,並在網格的底部放置了一個刪除按鈕。我面臨的問題是,我如何獲取所有已選中的ID,以便我可以在Delete
的IN
條款中通過這些ID?如何一次刪除多條記錄?
0
A
回答
0
首先你的名字你所有的複選框通過這樣一個數組被創建在他們的名字後面添加[]
,以後這就是你如何能得到那些檢查,並採取相應的行動:
for($i = 0; $i < count($_POST['checks']); $i++)
{
if (isset($_POST['checks'][$i]))
{
// this was checked !!
}
}
哪裏checks
是名稱所有這些複選框例如:
<input type="checkbox" name="checks[]" value="1" />
<input type="checkbox" name="checks[]" value="2" />
<input type="checkbox" name="checks[]" value="3" />
這就是你如何能得到那些你IN
子句中查詢:
$checked_array = array();
for($i = 0; $i < count($_POST['checks']); $i++)
{
if (isset($_POST['checks'][$i]))
{
$checked_array[] = mysql_real_escape_string($_POST['checks'][$i]);
}
}
// build comma separated string out of the array
$values = implode(',', $checked_array);
現在,您可以在查詢的IN
子句中使用$values
。
1
看看目前正在提交的內容:
var_dump($_POST);
你會看到所有的字段值。如果你選擇了正確的複選框,你將有一個要刪除的rowID數組,你可以在構建查詢時簡單地implode(',',$ _ POST ['checkBoxes'])或類似的東西。
安全將成爲一個問題在這裏...我敢肯定別人會深入發表這個,但你一定要驗證用戶可以刪除這些記錄。
1
爲每個複選框命名一個半唯一名稱,如tablerow[numeric_id]
。當您提交表格時,您可以簡單地捕獲已檢查的所有已發佈tablerow
值。
相關問題
- 1. MS Access:如何使用多個條件刪除一條記錄?
- 2. 如何一次編輯多條記錄
- 3. 如何在salesforce中一次刪除多個記錄?
- 4. 刪除多條記錄與子表
- 5. 在軌道中刪除多條記錄
- 6. 無法刪除多條記錄
- 7. 多刪除記錄
- 8. Rails的ActiveRecord刪除記錄,關聯的記錄一次刪除一個
- 9. 如何刪除Oracle 10g中的一條或多條記錄的效率?
- 10. phpmyadmin無法刪除一條記錄
- 11. mongoimport刪除第一條記錄
- 12. 從php刪除一條記錄用php
- 13. 從數組中刪除一條記錄
- 14. Laravel一次保存多條記錄
- 15. Rails一次編輯多條記錄
- 16. Django一次創建多條記錄
- 17. CakePHP一次編輯多條記錄
- 18. 一次提交多條記錄 - Laravel 5.2
- 19. 一次插入多條記錄的MySQL
- 20. 一次插入多條記錄 - sql
- 21. 刪除多條記錄後如何優化表
- 22. 使用check_box_tag和的link_to如何刪除多條記錄 - Rails4
- 23. 如何使用kendoui刪除網格中的多條記錄
- 24. 如何使用複選框刪除多條記錄?
- 25. 一次刪除多個記錄實體框架5
- 26. 如何一次刪除不同的可更新記錄?
- 27. 根據下一條記錄刪除SQL中的記錄
- 28. 刪除SQL中第一條記錄以外的重複記錄
- 29. 如何檢查刪除的記錄是否是最後一條記錄MySQL PHP
- 30. 蟒蛇記錄器記錄同一條目多次
您將$ _POST ['checks']複製到$ checked_array?國際海事組織他不能直接在他的查詢中使用數組:o – fabrik 2010-07-20 12:52:14
是的,這是行不通的。另外,它很容易受到SQL注入的影響。 – ceejayoz 2010-07-20 12:54:49
$ IN = implode(',',$ checked_array); – fabrik 2010-07-20 12:55:16