$ _POST foreach添加新输出

时间:2016-02-11 21:41:38

标签: php html foreach

标题可能不是很清楚。所以这是我的代码:

<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”。然后继续输入字符串,并让浏览器一个接一个地拥有字符串......

您好
世界
等...

提前谢谢!

3 个答案:

答案 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>";
}

?>