php如何在填充组合时保持其他字段不受干扰
亲爱的用户,在您的帮助和指导下,我迄今为止已经取得了成就。感谢这里的社区。由于一些用户认为这是一个重复的问题-很抱歉,我更改了预期结果。在各位议员的指导下,我相信我可以做到这一点 我有一个带有文本区域、组合框、文本框和其他元素的表单。首先,我在文本区域中输入地址 2I选择一个pincode-从表中填充 3选择pincode时,下一个文本字段由上文第2点中使用的相同表格填充。 为此,使用pincode刷新页面,并在下一个文本框中显示位置。 每个人都觉得不错。但我在文本区域中键入的内容和我在组合框中选择的内容将刷新为空白。我需要替换我键入和选择的内容。 用于收集pincode的脚本php如何在填充组合时保持其他字段不受干扰,php,combobox,populate,Php,Combobox,Populate,亲爱的用户,在您的帮助和指导下,我迄今为止已经取得了成就。感谢这里的社区。由于一些用户认为这是一个重复的问题-很抱歉,我更改了预期结果。在各位议员的指导下,我相信我可以做到这一点 我有一个带有文本区域、组合框、文本框和其他元素的表单。首先,我在文本区域中输入地址 2I选择一个pincode-从表中填充 3选择pincode时,下一个文本字段由上文第2点中使用的相同表格填充。 为此,使用pincode刷新页面,并在下一个文本框中显示位置。 每个人都觉得不错。但我在文本区域中键入的内容和我在组合框中
<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>
并在同一个名为getPlace.php的目录中创建一个新的.php文件,并放置从数据库中获取place的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函数及参数的更多信息,请阅读。顺便说一句,这看起来与您的另一个问题非常相似,并被视为重新发布。如果找到接受答案,则可能重复“抱歉,谢谢”。我是新来的。先生,我希望文本框根据组合框中的选择填充位置字段。怎么做?如果ajax是解决方案怎么办?哪个文本框?!您的表单中没有任何文本框。但是,如果您想用组合的选定项填充文本框,则不需要ajax请求。您只需使用jQuery,并在combo的更改事件中获取所选项目的文本并将其分配给文本框的值。Danesh Araste谢谢我按照您所说的做了,但遇到了一个问题,我在上面问过,请指导我确定您完全更改了您的问题!那代码有什么问题?!你什么都不要问。你面临的问题在哪里?!我建议,如果您想要一个实时表单,并且希望根据您的组合选择填充表单字段,请使用jQuery和Ajax。请告诉我问题出在哪里,我可以帮你。谢谢。问题是我不知道阿贾克斯。我使用javascript获取组合中选择的值,该组合本身是从表中的一列填充的,页面被刷新,同时从另一列中提取一个值,并显示在相应的文本框中。这里的示例是,它选择pincode并在文本框中显示pincode的位置。问题在于上面的代码在刷新第一个地址文本区域时变为空,类似地,组合框变为默认选中。我希望两者保留相同的值。