2011-04-03 80 views
0

如何從html中顯示的列表中刪除多個項目。刪除多個標記的項目

例如

<ul> 
<li>item 1</li>checkbox 
<li>item 2</li> 
</ul> 

<a href="delete.php?ids=checkedids">Delete items</a> 

回答

5

最簡單的辦法在PHP中做到這一點是給你的所有複選框相同的名字,並有該名稱與[]結束:

<input type="checkbox" name="item[]" value="1" /> 
<input type="checkbox" name="item[]" value="2" /> 
<input type="checkbox" name="item[]" value="3" /> 

然後您的腳本將所有檢查值作爲數組獲取:

if(empty($_REQUEST['item'])) { 
    // No items checked 
} 
else { 
    foreach($_REQUEST['item'] as $id) { 
     // delete the item with the id $id 
    } 
} 

爲了使這項工作,你需要把複選框變成<form>,並使用一個提交按鈕(而不是鏈接 - 這是行不通的,除非你開始使用JavaScript)是這樣的:

<form method="post" target="some/php/script.php"> 
    <input type="checkbox" name="item[]" value="1" /> 
    <input type="checkbox" name="item[]" value="2" /> 
    <input type="checkbox" name="item[]" value="3" /> 
    <input type="submit" name="delete" value="Delete checked items" /> 
</form> 

對此有一些可能的改進(請參閱Crozin的答案),但您應該首先了解基礎知識。

3

首先你應該使用一個表單。您可以使用複選框選擇要刪除的項目,然後用下面的查詢:

DELETE FROM tbl_name WHERE id_col_name IN (1, 2, 3, 4, 5, 6, 7, 8); 

HTML表單本身可能看起來像以下:

<form ...> 
    ... 
    <li> 
     <label>Delete item #123 <input type="checkbox" name="delete[123]" /> 
    </li> 
    ... 
</form> 

然後是下$_POST['delete']陣列容易獲得ID列表。

+0

如果有多個列在哪裏,你會怎麼做。 – Vish 2011-04-03 16:53:28