在PHP中动态添加到数组



我正试图从表单中获取输入,将其添加到数组中,并将该数组print_r显示到屏幕。

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

<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();),但我不知道如何解决它。

你是正确的。数组在每次发送表单时都重新初始化。你需要做的是让你的数组成为一个更持久的数据源。

  1. 您可以考虑使用会话和$_SESSION变量。

session_start();
if (!is_array($_SESSION['a'])){
  $_SESSION['a'] = array();
}
$_SESSION['a'][] = $_REQUEST['text'];
  1. 您也可以考虑将这些数据写入一个小文本文件,以便在脚本开始时读取。

  2. 另一种选择是将数据写入$_COOKIE

您正在混合执行客户端和服务器…
如果你想要一个文本数组,你应该这样做:

<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

您没有替换任何东西,您正在做的是将$_REQUEST['text']的值添加到数组中,该数组之前为空。

相关内容

  • 没有找到相关文章

最新更新