循环和删除按钮php的数组

循环和删除按钮php的数组,php,arrays,for-loop,unset,Php,Arrays,For Loop,Unset,我有以下代码: <?php $animals = array('cat', 'dog', 'mouse', 'elephant'); for($i=0, $n = count($animals); $i++){ echo $animals[$i]. '<input type="submit" name="remove" value="remove"/><br/>'; if(isset($_POST['remove'])){ unset

我有以下代码:

<?php
$animals = array('cat', 'dog', 'mouse', 'elephant');
for($i=0, $n = count($animals); $i++){
    echo $animals[$i]. '<input type="submit" name="remove" value="remove"/><br/>';
    if(isset($_POST['remove'])){
        unset($animals[$i]);
    }
}
?>


当我点击删除按钮时,什么也没发生。有什么想法吗?

如果要将“删除”作为每个按钮的值,那么最简单的方法是为
名称属性
提供一个数组。发送
$\u POST
后,您可以迭代
删除
数组,并根据键的大小取消设置任何内容

<?php
$animals = array('cat', 'dog', 'mouse', 'elephant');
if(isset($_POST['remove']) && is_array($_POST['remove'])){
    foreach($_POST['remove'] as $k=>$remove){
        unset($animals[$k]);
    }
}

echo '<form method="post" action="./">';
foreach($animals as $key=>$animal){
    echo $animal. '<input type="submit" name="remove['.$key.']" value="remove"><br/>';
}
echo '</form>';?>


注意:有很多方法可以实现你想要的目标。这是一种可能性。

这也是可以使用的另一种方法

$animals = array('cat', 'dog', 'mouse', 'elephant');
if(isset($_POST['remove'])) $animals=array_diff($animals, array($_POST['animal']));
foreach($animals as $pet)
{
    echo'<form method="post" action="">';
    echo $pet.'<input type="submit" name="remove" value="remove"/><br/>';
    echo '<input type="hidden" name="animal" value="'.$pet.'"/>';
    echo '</form>';
}

.

您是否试图像使用JS那样使用PHP-1您在这里丢失了很多元素,这些代码是否包含在其他包含
表单
元素的php中?感谢@samuel和Sheikh,我尝试了您的代码,第一次按下按钮删除动物时,第二次不会删除任何内容,而是用丢失的动物替换它。我想每次你按下移除按钮,一只动物就会被移除而不需要更换。这里是页面:[link][link]@AlbertoGrimaldi,您不能这样做,因为当您按下删除按钮时,会将一个项目发送到服务器以删除,并且您的阵列不会以任何方式保存。我想你可以使用
JavaScript
。好的,你能解释一下我怎么做吗?我试过很多方法,但我找不到解决办法!再次感谢!我尝试了更新,但当我点击删除时,不会删除任何内容。很抱歉打扰你,但我是初学者,我希望尽可能多地学习。谢谢你!您的解决方案很好,但我第一次按下“移除”按钮时,动物已被移除,第二次不会删除任何内容,而是将其替换为丢失的动物。我想每次你按下移除按钮,一只动物就会被移除而不需要更换。Sheikh Heera说我应该考虑JavaScript,你觉得怎么样?你还有别的方法吗?
$animals = array('cat', 'dog', 'mouse', 'elephant');
echo'<form name="animalForm" method="post" action="">'; // action should be your this file name, i.e. 'pets.php'
foreach($animals as $pet)
{
    echo '<label>'.$pet.'<input type="button" class="remove" value="remove"/></label><br/>';
}
echo '</form>';
<script type="text/javascript">
    window.onload=function(){
        var btns=document.getElementsByClassName('remove');       
        for(i=0;i<btns.length;i++)
        {
            if(btns[i].type==='button' && btns[i].className==='remove')
                btns[i].onclick=remove;
        }
    };
    function remove(event){
        var e = event || window.event;
        var el = e.target || e.srcElement;
        document.animalForm.removeChild(el.parentNode);
    }
</script>