在PHP中动态添加到数组?

在PHP中动态添加到数组?,php,html,arrays,forms,input,Php,Html,Arrays,Forms,Input,我试图从表单中获取输入,将其添加到数组中,然后将该数组打印到屏幕上 我的问题是表单的输入只替换数组中的第一个(也是唯一的)元素 <form action="" method="POST"> <input type="text" name="text" /> <input type="submit" name="sub"/> </form> <?php $a = array(); if( isset($_RE

我试图从表单中获取输入,将其添加到数组中,然后
将该数组打印到屏幕上

我的问题是表单的输入只替换数组中的第一个(也是唯一的)元素

<form action="" method="POST">
    <input type="text" name="text" />
    <input type="submit" name="sub"/>
</form>

<?php
    $a = array();

    if( isset($_REQUEST['text']) && !empty($_REQUEST['text'])){
        array_push($a, $_REQUEST['text']);
        print_r($a);
    }
?>


我的一个理论是,
$a
在PHP代码的第一行不断被重新分配(
$a=array();
),但我不确定如何修复它。我环顾四周,但找不到答案。

您正在混合客户端和服务器执行…
如果您想要一个文本数组,您应该使用如下内容:

<form action="" method="POST">

    <input type="text" name="text[]" />
    <input type="text" name="text[]" />
    <input type="text" name="text[]" />

    <input type="submit" name="sub"/>
</form>


如果您希望添加更多的文本输入,则应使用javascript注入更多的输入。您正在混合客户端和服务器执行…
如果您想要一个文本数组,您应该使用如下内容:

<form action="" method="POST">

    <input type="text" name="text[]" />
    <input type="text" name="text[]" />
    <input type="text" name="text[]" />

    <input type="submit" name="sub"/>
</form>


如果您想添加更多的文本输入,您应该使用javascript注入更多的输入。您没有替换任何内容,您正在做的是将
$\u REQUEST['text']
的值添加到数组中,该数组以前是空的。

您没有替换任何内容,您正在做的是添加
$\u REQUEST['text'的值
到之前为空的数组。

您是对的。每次发布表单时,数组都会重新初始化。您需要做的是将数组作为更持久的数据源

您可以考虑使用会话和.

>p>您也可以将此数据视为一个小文本文件,然后可以在脚本的开始。

  • 另一个选择是


  • 你说得对。每次发布表单时,数组都会重新初始化。您需要做的是将数组作为更持久的数据源

    您可以考虑使用会话和.

    >p>您也可以将此数据视为一个小文本文件,然后可以在脚本的开始。

  • 另一个选择是


  • 你想在不同的帖子之间积累价值吗?在这种情况下,您必须在发布之间来回发送页面上的数组内容(可能作为隐藏的输入元素),或者将数组内容持久化到数据库中。每一篇文章都会导致服务器从一个完全“空”的php实例开始,它对以前的数组一无所知。你只是想让它在屏幕上更新吗?你打算以后再提交吗?听起来好像你应该在客户端(即JavaScript)完成这些工作?你想在不同的帖子之间积累值吗?在这种情况下,您必须在发布之间来回发送页面上的数组内容(可能作为隐藏的输入元素),或者将数组内容持久化到数据库中。每一篇文章都会导致服务器从一个完全“空”的php实例开始,它对以前的数组一无所知。你只是想让它在屏幕上更新吗?你打算以后再提交吗?听起来好像你应该在客户端(即JavaScript)完成这些工作?我不知道如何在JavaScript中处理表单。。。我希望有一个文本框,每次按“提交”时,文本框的值都会附加到数组中,并在屏幕上重新显示。在JS中有更简单的方法吗?我不知道如何在javascript中处理表单。。。我希望有一个文本框,每次按“提交”时,文本框的值都会附加到数组中,并在屏幕上重新显示。在JS中有更简单的方法吗?我决定将数据写入一个文本文件,它似乎工作得很好。我只需要弄清楚如何添加新行,可能是“\n”或“
    ”。谢谢我决定将数据写入一个文本文件,它似乎工作得很好。我只需要弄清楚如何添加新行,可能是“\n”或“
    ”。谢谢