最后一个用户输入会覆盖PHP数组中的先前输入

时间:2018-03-04 07:19:56

标签: php html arrays forms

我尽力尽力说出问题。我正在尝试创建一个列出一些动物的Web应用程序,然后允许用户向列表中添加更多内容。那部分工作正常,但是,我需要列表继续增长。现在发生的事情是每次我输入一个新的输入,最后一个被覆盖。

例如,如果我首先添加“Tiger Shark”然后添加“Dolphin”,则“Tiger Shark”将完全被“Dolphin”取代,而不是“Tiger Shark”下面的“Dolphin”。如何防止这种情况发生并确保每个用户输入都列在前一个用户输入下?

根据需要编辑澄清:我是通过HTML表单进行此操作。

这是我的PHP代码:

        <?php


$animal = array("Killer Whale", "Great White Shark", "Eel");

if (isset($_POST['add']))    
{ 

$add = array($_POST['animal']);
$animal = array_merge($animal, $add);

} 

foreach($animal as $a){

    echo "<li>$a</li>";

}


?>

这是我的HTML表单代码:

                    <form method="post" action="Yarbrough_Chapter6Project.php" class="form">
                    <div class="form__group">
                        <input type="text"  name="animal" class="form__input" placeholder="Favorite Sea Animal">
                        <label for="animal" class="form__label">Favorite Sea Animal</label>
                    </div>

                    <div class="form__group">
                        <input type="submit" name="add" class="btn btn--blue" value="Add An Animal">
                    </div>

                </form>

1 个答案:

答案 0 :(得分:0)

您可以使用[]将元素添加到数组中。 $animal[] = new_element将始终将new_element添加到数组的末尾。

<?php  

$animal = array("Killer Whale", "Great White Shark", "Eel");

if (isset($_POST['add']))    
{ 

$add = $_POST['animal'];
$animal [] = $add;

} 

foreach($animal as $a){

    echo "<li>$a</li>";

}


?>