在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”或“
”。谢谢