2013-07-16 2 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

if ($ _ POST ['$ p'] .. ваша проблема. Это не может быть правильно. – steven

ответ

0

Ты ставишь каждую кнопку удалить в своей собственной форме - вы можете также добавить в скрытом входе с идентификатором для удаления?

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

Вы должны связать каждую кнопку с соответствующим элементом. Вы хотите сделать это динамически с помощью идентификатора или скрытого ввода или чего-то еще.

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 
} 
Смежные вопросы