Уважаемые пользователи с вашей помощью и руководством, которого я достиг до сих пор. Спасибо сообществу здесь. Поскольку некоторые пользователи считают, что это дублирующий вопрос, извините, я изменил ожидаемый результат. С руководством членов я думаю, что могу достичь этого.
У меня есть форма с текстовой области, комбо, текстовое поле и другие элементы. Сначала 1) Я ввожу адрес в текстовое поле
2) Я выбираю пин-код — который заполняется из таблицы
3) когда выбран пин-код, следующее текстовое поле заполняется той же таблицей, что и в пункте (2) выше.
Для этого страница обновляется с помощью пин-кода и отображает место в следующем текстовом поле.
Каждый думает хорошо. Но то, что я набрал в текстовой области, и то, что я выбрал в комбо, обновляется до пустого. Мне нужно заменить то, что я напечатал и выбрал.
Скрипт, используемый для сбора пин-кода
<SCRIPT language=JavaScript>
function reload(form)
{
var val=form.pin_code.options[form.pin_code.options.selectedIndex].value;
self.location='addschool.php?pin_code=' + val ;
}
</script>
Код PHP ниже:
<form data-toggle="validator" role="form">
<div class="form-group textareawidth has-feedback">
<label for="address">Enter school address</label>
<textarea class="form-control" pattern = "^[_A-z0-9]{1,}$" maxlength="150" rows ="3" name = "saddress" id="address" placeholder="Enter address with out pincode" required></textarea>
<span class="glyphicon form-control-feedback" aria-hidden="true"></span>
<span class="help-block with-errors"></span>
</div>
<div class="form-group textareawidth">
<label for="pin">Pincode - School:</label>
<?php
echo "<select class='form-control' id='pin' onchange=\"reload(this.form)\" name ='pin_code' name=pin_code value='' >";
echo "<option selected='selected'>Select Pincode </option>";
while($nt=mysqli_fetch_array($result)){//Array or records stored in $nt
echo "<option value=$nt[pin]>$nt[pin]</option>";
/* Option values are added by looping through the array */
}
echo "</select>";// Closing of list box
?>
</div>
<?php
$vplace="";
if(isset($_GET['pin_code']))
{
$temp=$_GET['pin_code'];
$quer="SELECT place FROM pincode where pin = $temp ";
$ex1=mysqli_query($dbcon,$quer) or die(mysql_error());
$count1=mysqli_num_rows($ex1);
if($count)
{
$row = mysqli_fetch_assoc($ex1);
$vplace = $row["place"];
}
else
{
echo '<script>';
echo 'alert("no such place found");';
echo '</script>';
}
}
?>
<div class="form-group textareawidth">
<label for="place">Place</label>
<?php
//echo "<input type ='text' class='form-control' name = 'splace' id='place' value =$vplace]>;";
echo "<p class='form-control-static'>$vplace</p>";
?>
</div>
Как мне этого добиться? Спасибо
В соответствии с вашим последним комментарием я обновляю ответ.
Вот пример того, что вы хотите:
на странице формы (здесь form.php) введите следующий код.
form.php:
<!doctype html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(e) {
$('#pin').change(function(e) {
var ajaxData = {
pinCode: $(this).val()
};
$.post('getPlace.php', ajaxData, function(response){
$('#place').val(response);
});
});
});
</script>
</head>
<body>
<form id="myform" name="frmForm" method="post" action="doAction.php">
<label for="address">Enter school address:</label><br>
<textarea id="address" name="txtAddress"></textarea><br>
<label for="pin">Pincode - School:</label><br>
<select id="pin" name="cmbPin">
<?php
$db = mysqli_connect('localhost','root','','testdb') or die(mysqli_connect_error());
$query = 'SELECT pin FROM pincode';
$result = mysqli_query($db,$query);
while($row = mysqli_fetch_array($result)){
echo "<option value=\"$row[pin]\">$row[pin]</option>" . PHP_EOL;;
}
?>
</select><br>
<label for="place">Place:</label><br>
<input id="place" name="txtPlace" type="text"><br>
<input id="submit" name="btnSubmit" type="submit" value="GO!">
</form>
</body>
</html>
И создайте новый файл .php в том же каталоге с именем getPlace.php и поместите код php, который выбирает место из вашей базы данных.
getPlace.php:
<?php
if(isset($_POST['pinCode'])){
$pinCode = $_POST['pinCode'];
$db = mysqli_connect('localhost','root','','testdb') or die(mysqli_connect_error());
$query = "SELECT * FROM pincode WHERE pin = '$pinCode'";
$sql = mysqli_query($db, $query);
$result = mysqli_fetch_array($sql);
$place = $result['place'];
echo $place;
}
?>
для получения дополнительной информации о функциях и параметрах jQuery и Ajax прочитайте Документация.
Других решений пока нет …