我无法弄清楚如何在点击保存后保存数据保存在$ myArray上。每次我这样做,它取代了其他输入。
我需要能够保存所有用户输入并保存在文本文件中。基本上保持数据和更新文件的数据保存。
有什么建议吗?
<!DOCTYPE>
<html>
<body>
<form action="list.php" method="POST">
Name: <input type="text" name="name[]" /><br />
Email: <input type="text" name="name[]" /><br />
<input type="submit" name="save" value="Submit" /><br />
<?php
$myArray = array();
if (isset($_POST['save']))
{
array_push($myArray,$_POST['name']);
}
print_r($myArray);
?>
</body>
</html>
答案 0 :(得分:0)
每次用户点击提交时,都会向您的脚本发送新请求。
变量$myArray
是在PHP代码的第一行创建的,是一个空数组。
变量不会在请求中保留。我建议您使用cookie或会话变量。
后者的例子在这里:
<?php
session_start(); // This has to be done before any data is sent to the client
session_regenerate_id(); // Good practice to prevent session hijacking
?>
<!DOCTYPE>
<html>
<body>
<form action="list.php" method="POST">
Name: <input type="text" name="name[]" /><br />
Email: <input type="text" name="name[]" /><br />
<input type="submit" name="save" value="Submit" /><br />
<?php
if( !isset( $_SESSION['myArray'] ) || !is_array( $_SESSION['myArray'] ) )
{
$_SESSION['myArray'] = array();
}
if (isset($_POST['save']))
{
$_SESSION['myArray'][] = $_POST['name'];
}
print_r($_SESSION['myArray']);
// Here you can write the contents of $_SESSION['myArray'] to a file.
?>
</body>
</html>
答案 1 :(得分:0)
这样您就可以在文本文件中跟踪它:
<html>
<body>
<form action="list.php" method="POST">
Name: <input type="text" name="name[]" /><br />
Email: <input type="text" name="name[]" /><br />
<input type="submit" name="save" value="Submit" /><br />
<?php
$myArray = array();
if (isset($_POST['save']))
{
$f = file_get_contents("myfile.txt");
$myArray = split($f, "\n");
array_push($myArray,$_POST['name']);
file_put_contents("myfile.txt", implode($myArray, "\n"));
}
print_r($myArray);
?>
</body>
</html>
(您可能希望使用PHP_EOL [或任何常量 - 我总是要查找]代替&#34; \ n&#34;)
由于HTML本质上是事务性的,因此除了会话,数据库,文件之外,您不会跟踪任何变量 - 每次重新加载页面时,任何变量都会变为空。