我试图通过从HTML输入元素“ text”中获取输入来将值插入数组。我能够将值插入数组,但是在数组中插入值后,它将替换索引0处的值,而不是将索引增加到1,依此类推。
我尝试使用array_push()函数和简单的$ list [] =“ a”;。但是两种方法都会产生相同的输出。
<html>
<body>
<form name="f1" action="#" method="POST">
Enter Any No.: <input type="text" name="inpbox">
<br>
<input type="submit" name="add" value="Add">
</form>
<br>
</body>
</html>
<?php
$val = $_POST["inpbox"];
$list=[];
array_push($list,$val);
print_r($list);
?>
实际输出: 数组([0] => 5)
插入6, 它将像这样的Array([0] => 6)而不是预期的输出。
预期输出: 数组([0] => 5,[1] => 6)
注意:我们可以插入任何类型的值,例如number(55,8,6)或字符串('aa','f')
答案 0 :(得分:0)
要在服务器上存储状态,您需要使用类似PHP Sessions的东西。它们允许存储值,然后可以在随后的页面访问中检索这些值。对于您的示例,这样的方法将起作用:
<?php
session_start();
?>
<html>
<body>
<form name="f1" method="POST">
Enter Any No.: <input type="text" name="inpbox">
<br>
<input type="submit" name="add" value="Add">
</form>
<br>
</body>
<?php
if (isset($_POST["inpbox"])) {
$val = $_POST["inpbox"];
// any values stored yet?
if (!isset($_SESSION['list'])) {
// no, create the list
$_SESSION['list'] = array($val);
}
else {
// yes, add this value to the list
$_SESSION['list'][] = $val;
}
print_r($_SESSION['list']);
}
?>
</html>
注意
对session_start
的调用必须发生在进行任何输出之前,因为会话的默认操作模式是使用cookie,并且必须先发送标头来设置cookie,然后再进行其他任何输出