2013-07-16 48 views
0

我需要顯示元素列表,並在每個元素之後動態添加刪除按鈕。只要用戶按下刪除按鈕,相應的元素應該被刪除,列表的其餘部分應該被顯示。 我寫了下面的PHP代碼來實現:在循環中多次提交按鈕php

for($i=0;$i<count($b);$i++) 
{ 
    $a=$b[$i]; 
    echo "<li>$b[$i]</li> "; 
    $p="remove"."$j"; 
    echo "<form action='' method='post'> <input class='z' type='submit' name='$p' value='delete'> </form>"; 
    $j++; 

} 
    if($_POST['$p']) 
{ 
    //code for deleting 
} 

的問題是,每當用戶按下刪除按鈕按鈕只增加最後一個元素是越來越刪除,其餘的都沒有working.Please告訴我如何檢測哪個按鈕被動態按下,並使用php刪除相應的元素。

謝謝

+0

生成的HTML看起來像什麼?確定要刪除哪個值的代碼看起來像什麼? – David

+0

添加 可能是一個解決方案:? –

+0

如果($ _ POST [「$ P」] ..是你的問題。這不可能是正確的。 – steven

回答

0

你把它自己的形式每個刪除按鈕 - 你也可以用ID刪除添加在一個隱藏的輸入?

echo "<form action='' method='post'>\n"; 
echo "<input type='hidden' name='toDelete' value='" .$i ."'>\n"; 
echo "<input class='z' type='submit' name='$p' value='delete'>\n"; 
echo "</form>\n"; 

你最好再尋找刪除與元素:

if(isset($_POST['toDelete'])) { 
    // $_POST['toDelete'] has the index number of the element to remove 
} 
1

你需要每個按鈕與其相應的元素相關聯。你會想動態地用一個ID或隱藏的輸入或其他東西來做到這一點。

for($i=0;$i<count($b);$i++) 
{ 
    $a=$b[$i]; 
    echo "<li>" . $b[$i] . "</li> "; 
    $p="remove" . $i; 
    echo "<form action='' method='post'>"; 
    echo "<input type='hidden' name='item' value='" . $i . "' />"; 
    echo "<input class='z' type='submit' name='delete' value='delete'> </form>"; 
    $i++; 

} 
    if($_POST['delete']) 
{ 
    $item = $_POST['item']; 
    //code for deleting $item 
}