无法将新字符串放入数组中

时间:2011-11-15 18:59:30

标签: php

我有一个表单,当用户输入内容时,它会出现在屏幕上。我保留了用户在名为$output的变量中输入的文本,然后我尝试将每个$output放入一个名为$arrayText的数组中,我的目标是让用户键入某个内容单击一个按钮,然后用户的文本出现在屏幕上,当他第二次尝试时,第一个文本仍在那里,而新的文本将在下一行。但是,它仅适用于第一次。它第二次用旧的替换第二个文本,这是我的代码     

if (isset($_POST['putContents'])) { 
  $output = $_POST['contents'];
  test();

}
function test()
{
static $arrayText = array();
    global $output;
    $arrayText[]= $output;
    for($i = 0; $i < count($arrayText); $i++){
    echo $arrayText[$i];
    echo "<br>";
  }
}

}

?>

感谢您提前提供任何帮助

2 个答案:

答案 0 :(得分:0)

通过第二次执行你的脚本你的$ _POST将只有你上一次提交的值,在你的情况下将覆盖你的数组。

如果您想要存储超出当前流程的数据,您必须将日期存储在除$ _POST全局之外的其他位置。

我建议您使用会话,因为数据库查询肯定会超出您的需求。 使用:

session_name("admin");
session_start();
if(empty($_SESSION["yourOldText"])) $_SESSION["yourOldText"]=$_POST["userinput"];

如果您想访问旧数据,则可以使用$_SESSION["yourOldText"]

答案 1 :(得分:0)

每次按下提交按钮后,您都无法逐行“收集”用户输入到数组中。必须在某处保留(存储)这些行。您可以按照建议将每一行存储为数据库或会话cookie中的记录。我会通过将输入的行存储在表单内的隐藏输入标记中来保持状态:

<input type="hidden" name="line[0]" value="What the user typed in first" />
<input type="hidden" name="line[1]" value="The second line that was typed in" />
<input type="text" name="contents" value="" />