формы — сохранить значение в текстовом поле после перезагрузки страницы в php?

У меня есть два текстовых поля и два раскрывающихся списка в форме. После заполнения значений в текстовых полях и выбора значения из раскрывающегося списка страница перезагружается, и в зависимости от значения, выбранного в раскрывающемся списке, заполняется другой раскрывающийся список. Но значений в текстовых полях там нет. Как сохранить эти значения текстовых полей.

<html>
<head>

</head>
<body>
<form action="selectmultiplepost.php" method="post" name="myform">

First Name<input type="text" name="firstname" value=""><br>
Last Name<input type="text" name="lastname" value=""><br>Industry Name <select name="industryid" id="industrySelect" onchange="document.location.href = 'selectmultiple.php?industryid=' + this.value">
<option>SELECT</option>
<?php
include('config.php');

$query = "select IndustryId, IndustryName from industrytable";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0)
{
while($fetch = mysql_fetch_array($result))
{
?>
<option value="<?php echo $fetch['IndustryId'];?>"><?php echo $fetch['IndustryName'];?></option>
<?php
}
}?>
</select><br>
Skills <select name="skillname">
<option>SELECT</option>
<?php
include('config.php');

if(isset($_GET['industryid']))
{
$industryID = $_GET['industryid'];
}
else
{
$industryID = "";
}

$skillQuery = "select SkillId, SkillName from skilltable where Industryid='".$industryID."'";
$resultSkill = mysql_query($skillQuery);
if(mysql_num_rows($resultSkill) > 0)
{
while($fetch = mysql_fetch_array($resultSkill))
{
?>
<option value="<?php echo $fetch['SkillId'];?>"><?php echo $fetch['SkillName'];?></option>
<?php
}
}

?>

</select><br>
<input type="submit" name="submitform" value="submit"/>
</form>

<script>

document.getElementById('industrySelect').value = "<?php echo $_GET['industryid'];?>";
</script>

</body>
</html>

0

Решение

Да, я думаю, вам нужно понять некоторые основы того, как все работает, поэтому я собираюсь игнорировать тот факт, что вы используете расширение mysql_ *, которое вы больше не должны использовать, поскольку оно устарело.

Итак, первое, что нужно запомнить, это то, что скрипт / страница php будет выполняться сверху вниз каждый раз, когда вы а) запускаете страницу из браузера и / или б) нажимаете кнопку отправки.

Что касается вашего фактического вопроса, это означает, что 2 строки вашей формы, которые создают First Name а также Last Name поля ввода будут запускаться по мере их кодирования при каждом выполнении.

Поэтому, если вы хотите повторно загрузить то, что было введено пользователем, вы должны сделать это самостоятельно, я боюсь, что это не сделано волшебством.

<form action="selectmultiplepost.php" method="post" name="myform">

First Name<input type="text" name="firstname" value=""><br>
Last Name<input type="text" name="lastname" value=""><br>

Таким образом, вам нужно будет проверить, вводил ли пользователь что-либо, так же, как вы делаете для industryid позже на странице и, если это так, поместите это значение в value="" имущество. Что-то вроде этого

<?php
$fn = !empty($_POST['firstname']) ? $_POST['firstname'] : '';
$ln = !empty($_POST['lastname']) ? $_POST['lastname'] : '';
?>
First Name<input type="text" name="firstname" value="<?php echo $fn;?>"><br>
Last Name<input type="text" name="lastname" value="<?php echo $ln;?>"><br>

Я также заметил, что более поздний код использует $_GET но твой <form тег говорит браузеру использовать method="post" поэтому вы должны использовать массив $ _POST, а не массив $ _GET на протяжении всего кода.

Я также вижу много других ошибок в вашем коде, но поскольку они не являются предметом вашего вопроса, я оставлю их для вас, чтобы задать другие вопросы о

0

Другие решения

ставь вот так,

First Name<input type="text" name="firstname" value=isset($_GET['firstname'])? $_GET['firstname']:""><br>

Last Name<input type="text" name="lastname" value=isset($_GET['lastname'])? $_GET['lastname'] :""><br>
-1

По вопросам рекламы [email protected]