从同一文本框中一起打印多个提交

时间:2014-11-26 00:01:31

标签: php html forms input output

我有一项简单的任务,因为没有让它发挥作用我感到非常恼火。 我有一个文本框和一个提交按钮,我的目标是打印一行中提交的所有内容。

水果:_________ SUBMIT_BUTTON(购买)

列表:..

所以,当我提交一个苹果时,我得到了

List: apple

然后香蕉

List: apple banana

你明白了。

我的想法是将新提交的字符串添加到变量并打印出来。

<html>
<head></head>
<body>
  <form method="post" action="">
    Fruit:
    <input type="text" name="text" />
    <input type="submit" name="button" value="Buy" />
  </form>

<?php
$fruit = '';
if(isset($_POST['button'])) {
  $fruit = $fruit . ' ' . $_POST['text'];
  echo 'List: ', $fruit;
}
?>
</body>
<html>

但我只收到最后提交的字。似乎每次我点击购买&#39; $ fruit =&#39;&#39 ;;执行。

1 个答案:

答案 0 :(得分:1)

或者,如果您希望值保持不变,则可以使用会话并创建一个容器来保存提交的值。粗略的例子:

<?php

session_start();
// initializations
if(!isset($_SESSION['fruits'])) {
    $_SESSION['fruits'] = array();
}


if(isset($_POST['button'])) {
    $_SESSION['fruits'][] = $_POST['text']; // push the submitted value inside
    echo implode(' ', $_SESSION['fruits']); // join all the values inside it and print it
}
?>

<body>
    <form method="post" action="">
        Fruit:
        <input type="text" name="text" />
        <input type="submit" name="button" value="Buy" />
    </form>
</body>