【问题标题】:How to keep data inside a text area after submission?提交后如何将数据保存在文本区域内?
【发布时间】:2017-11-04 01:22:53
【问题描述】:

我有一个文本区域,我可以在其中输入文本,提交表单后,第一个字段中的文本会转到第二个输出字段。现在我在同一个页面上有完全相同的东西,所以输入字段,提交和输出字段。我想要的是当任一提交按钮被按下时,输出将保持不变。这是我到目前为止所做的:

<head>
        <title></title>
        <meta charset="utf-8">

        <?php

            $inputText = $_GET['FirstText'];
            $InputTextTwo = $_GET['SecondText'];
          ?>

    </head>

    <body>
        <form action="#" method="GET">
            <textarea cols="50" rows="2" name="FirstText"></textarea>
                <br>
            <input type="submit" name="submit_firstField" value="FirstField">       
                <br>
            <textarea disabled="yes" cols="50" rows="2" name="SecondOfFirst"><?php echo $inputText;  ?></textarea>
        </form>

        <hr/>

        <form action="#" method="GET">
            <textarea cols="50" rows="2" name="SecondText"></textarea>
                <br>
            <input type="submit" name="submit_SecondField" value="SecondField">     
                <br>
            <textarea disabled="yes" cols="50" rows="2" name="SecondOfSecond"><?php echo $InputTextTwo;  ?></textarea>

        </form>
    </body>

如您所见,当第一次提交完成后,我想做第二次,第一次输出消失了,反之亦然。

【问题讨论】:

  • 我们在谈论多少种表格?只有2个?如果只有两个,则将“其他形式”的数据保留在表单中,以便您可以使用那些隐藏的输入来不断传播。或者把它塞进_SESSION。或者想出另一种方法(有很多)。
  • @Randall 把它塞进一个相同的形式基本上不起作用

标签: php html forms


【解决方案1】:

我已经解决了你的问题。 主要原因是现在两个textareas使用了不同的Form。 所以一次只能提交一个 textarea 值。 我在每个表单中添加了临时隐藏输入字段并运行代码。 现在运行良好。请检查它们。

天阳

<html>
<head>
        <title></title>
        <meta charset="utf-8">

        <?php
            $inputText = 'asdf';
            $InputTextTwo = 'bbbb';
           if(isset($_GET['FirstText'])){
             $inputText = $_GET['FirstText'];
             $InputTextTwo = $_GET['temp'];
           }
           if(isset($_GET['SecondText'])){
             $InputTextTwo = $_GET['SecondText'];
             $inputText = $_GET['temp'];
           }
          ?>

    </head>

    <body>
        <form action="#" method="GET">
            <textarea cols="50" rows="2" name="FirstText"></textarea>
                <br>
            <input type="submit" name="submit_firstField" value="FirstField">       
            <input type="hidden" name="temp" value ="<?php echo $InputTextTwo;  ?>" />
                <br>
            <textarea disabled="yes" cols="50" rows="2" name="SecondOfFirst"><?php echo $inputText;  ?></textarea>
        </form>

        <hr/>

        <form action="#" method="GET">
            <textarea cols="50" rows="2" name="SecondText"></textarea>
                <br>
            <input type="submit" name="submit_SecondField" value="SecondField">     
            <input type="hidden" name="temp" value ="<?php echo $inputText;  ?>" />
                <br>
            <textarea disabled="yes" cols="50" rows="2" name="SecondOfSecond"><?php echo $InputTextTwo;  ?></textarea>
        </form>
    </body>
    </html>

【讨论】:

  • 如果我在代码中添加某种逻辑,比如把 x int 1 和 y 变成 0,那么我需要用 foreach 来回显它,我将如何做到这一点被呼应出来?逻辑例如:if(isset($_GET['FirstText'])){ $inputText = $_GET['FirstText']; $InputTextTwo = $_GET['temp']; $digits = str_split($digits, 4); $ChangeArray = array( "" =&gt; " ", " " =&gt; " ", "x" =&gt; "1", "y" =&gt; "0", ); foreach ($digits as $val) { $ChangeArray[$val]; }
  • ... 通过输入 $inputText = $inputText 。 $ChangeArray[$val];in 它只会回显 One-part 所以如果输入是 xy 它只会输出 0
  • ...我如何通过使用您的解决方案得到回应?
  • 如果我在代码中添加某种逻辑,比如把 x int 1 和 y 变成 0,那么我需要用 foreach 来回显它,我将如何做到这一点被呼应出来?逻辑例如:if(isset($_GET['FirstText'])){ $inputText = $_GET['FirstText']; $InputTextTwo = $_GET['temp']; $digits = str_split($inputText); $ChangeArray = array( "" =&gt; " ", " " =&gt; " ", "x" =&gt; "1", "y" =&gt; "0", ); foreach ($digits as $val) { $ChangeArray[$val]; }
  • 对不起,我在第一条评论中有一个错误,不得不再次写这个,因为 stackOverflow 似乎有一个非常奇怪的系统来编辑 cmets..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
  • 1970-01-01
  • 2013-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多