Сохраняйте данные формы внутри поля после отправки, используя php

Я использую приведенный ниже код для HTML-формы (у него есть две формы). Я могу сохранить поле textarea после отправки первой и второй формы. но проблема, с которой я сталкиваюсь, это выбор выпадающего меню.

Код:

<html>
<body>

<div class="emcsaninfo-symcli-main">
    <form  id="form1" name="form1" action=" " method="post" > 



        <div class="input">Your Name</div>
        <div class="response"><span><input  class="textbox" id="myname" name="myname" type="text" value="<?php if(isset($_POST['myname'])) { echo htmlentities ($_POST['myname']); }?>" /></span> </div>


        <div class="input">Your Place</div>
        <div class="response"><span><input  class="textbox" id="myplace" name="myplace" type="text" value="<?php if(isset($_POST['myplace'])) { echo htmlentities ($_POST['myplace']); }?>" /></span> </div>

        <div class="input-quest">Graduation Status</div>
        <div class="input-resp"><select id="graduation" name="graduation" OnChange="CMT();"><option class="dropdown-options">Graduate</option><option class="dropdown-options">Non Graduate</option></select></div>

<div class="submit">
        <input  id="first_submit" type="submit"  name="first_submit" value="first_submit" />
</div>

</form>


<?php

if(!empty($_POST['myname']) && !empty($_POST['myplace']) || !empty($_POST['output_textarea'] ) )
{

$myname = $_POST['myname'];
$myplace = $_POST['myplace'];
$graduation = $_POST['graduation'];

?>


<form  id="form2" name="form2" action=" " method="post" >
<textarea onclick="this.select()" name="output_textarea" id="output_textarea" cols="100" rows="25" readonly value="<?php if(isset($_POST['output_textarea'])) { echo htmlentities ($_POST['output_textarea']); }?>">


<?php

echo "My name is $myname and I am from $myplace, and I am $graduation";

?>

</textarea>

<input  id="submit1" type="submit"  name="name_field" value="submit1" />
<input  id="submit2" type="submit"  name="place_field" value="submit2" />

<input  id="myname_hidden" name="myname" type="hidden" value="<?php if(isset($_POST['myname'])) { echo htmlentities ($_POST['myname']); }?>"/>
<input  id="myplace_hidden" name="myplace" type="hidden" value="<?php if(isset($_POST['myplace'])) { echo htmlentities ($_POST['myplace']); }?>" />
<input  id="graduation_hidden" name="graduation" type="hidden" value="<?php if(isset($_POST['graduation'])) { $graduation = $_POST['graduation']; }?>" />
</form> 

<?php

function name()
{
    echo $_POST["output_textarea"];
}
if(isset($_POST['name_field']))
{
   name();
} 



function place()
{
    echo $_POST["output_textarea"];
}
if(isset($_POST['place_field']))
{
   place();
} 

}

?>


</div>      

</html>
</body>

Например, если я поставлю name = John, place : UK и выбрав статус градации как graduate, это даст мне первый вывод формы, как в моем output textarea

My name is John and I am from UK, and I am Graduate

У меня есть две отдельные кнопки отправки для второй формы, используя которые я делаю некоторые другие функции с помощью output textareaЕсли я нажму любую вторую кнопку, я смогу сохранить записи, указав свое имя и место, но не сохранив выпадающий список. так что будет отображаться только после отправки submit1 или же submit2

My name is John and I am from UK, and I am

Вот,

  1. Как я могу сохранить выпадающий выбор также с областью вывода текста
  2. Смогу ли я показывать только содержимое output_textarea после отправки второй формы без сохранения данных первой формы?

PHP FIDDLE

1 ответ

Решение

У вас есть ошибка в логике в скрытом вводе для элемента "выпускник".
Это то, что у вас есть в строках 53-55. Линия 55 не имеет эха, вместо этого она имеет $graduation = $_POST['graduation']; который не поможет вам:

<input  id="myname_hidden" name="myname" type="hidden" value="<?php if(isset($_POST['myname'])) { echo htmlentities ($_POST['myname']); }?>"/>
<input  id="myplace_hidden" name="myplace" type="hidden" value="<?php if(isset($_POST['myplace'])) { echo htmlentities ($_POST['myplace']); }?>" />
<input  id="graduation_hidden" name="graduation" type="hidden" value="<?php if(isset($_POST['graduation'])) { $graduation = $_POST['graduation']; }?>" />

вместо этого этот код должен работать:

<input  id="myname_hidden" name="myname" type="hidden" value="<?php if(isset($_POST['myname'])) { echo htmlentities ($_POST['myname']); }?>"/>
<input  id="myplace_hidden" name="myplace" type="hidden" value="<?php if(isset($_POST['myplace'])) { echo htmlentities ($_POST['myplace']); }?>" />
<input  id="graduation_hidden" name="graduation" type="hidden" value="<?php if(isset($_POST['graduation'])) { echo htmlentities($_POST['graduation']); }?>" />
Другие вопросы по тегам