标题可能不是很清楚。所以这是我的代码:
<form method="post" action="">
<input type="text" name="value">
<input type="submit">
</form>
<?php
if (is_array($_POST['value'])) {
foreach ($_POST['value'] as $k) {
echo "" . $k . "<br>";
$k++;
}
} else {
echo $_POST['value'] . " is not an array";
} ?>
基本上我想做的是输入一个字符串,让我们说“你好”。我希望浏览器输出字符串“Hello”然后我将能够输入另一个字符串“World”。然后继续输入字符串,并让浏览器一个接一个地拥有字符串......
您好
世界
等...
提前谢谢!
答案 0 :(得分:0)
您必须发布所有数据,而不仅仅是要保存的新元素,因为php不存储$_POST
永久物。
<form method="post" action="">
<input type="text" name="value[]" />
<?php
if (is_array($_POST['value'])) {
foreach ($_POST['value'] as $k) {
echo '<input type="hidden" name="value[]" value="'.$k.'">;
}
?>
<input type="submit">
</form>
<?php
if (is_array($_POST['value'])) {
foreach ($_POST['value'] as $k) {
echo "" . $k . "<br>";
}
} else {
echo $_POST['value'] . " is not an array";
} ?>
另一种方法可能是序列化$_POST
,但是将其转换为隐藏的输入,并在发送表单后将其反序列化。
答案 1 :(得分:0)
您需要使用类似PHP会话的内容来存储发布时的值,然后在循环中逐个输出所有值。
<form method="post" action="">
<input type="text" name="value">
<input type="submit">
</form>
<?php
session_start();
if(array_key_exists('value',$_POST)){
$_SESSION['values'][] = $_POST['value'];
}
if(count($_SESSION['values'])){
foreach($_SESSION['values'] as $value){
echo $value.'<br>';
}
}
答案 2 :(得分:0)
考虑使用会话:
<form method="post" action="">
<input type="text" name="value">
<input type="submit">
</form>
<?php
session_start();
$_SESSION['words'][] = $_POST['value'];
foreach ($_SESSION['words'] as $k) {
echo "" . $k . "<br>";
}
?>