根据 php jQuery 中的下拉选择单击按钮时填充文本框
Fill textbox when click a button according to dropdown selection in php jQuery
我的过程是这样的:我有一个下拉菜单和文本框。当我从下拉列表中 select 一个 id(唯一 id)然后单击提交按钮时想要将相应的名称显示到文本框。
我的数据库字段:
id
(自动递增)
AgencyName_id
(唯一 ID)
- 姓名
dispay.html
<select name="agencyID_dwn" class="idLookup_dwn" id="agencyID_dwn" >
<option selected>...Select...</option>
<?php
while($row = mysqli_fetch_array($result)){
?>
<option value="<?php echo $row['AgencyName_id'];?>">
<?php echo $row['AgencyName_id'];?></option>
<?php
}
?>
</select>
// for input text
<input type="text" id="testid">
// submit button
<input type="submit" name="lookupSubmit">
dataGet.php
<?php
if (isset($_POST["lookupSubmit"])) {
$user_id=$_POST['agencyID_dwn'];
$query = "select * from AgencyHome where AgencyName_id = '$user_id'" ;
$result=mysqli_query($db, $query);
$data = mysqli_fetch_assoc($result);
echo json_encode($data);
exit();
}
?>
myjson.js
<script src="//code.jquery.com/jquery-1.11.2.min.js"> </script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"> </script>
<script type="text/javascript">
$(document).ready(function(){
$('#agencyID_dwn').change(function(){
var reg_number = $(this).val();
var data_String;
data_String = 'reg_number='+reg_number;
$.post('dataGet.php',data_String,function(data){
var data= jQuery.parseJSON(data);
$('#testid').val(data.Name);
});
});
});
</script>
当我点击提交按钮时
我在 "dataGet.php" 中将数据库结果作为数组获取。但是在我的代码中文本框中没有显示 result.Any 错误?
在 dataGet.php、
中这样尝试
while ($row = mysqli_fetch_assoc($result)) {
echo $row["Name"];
}
这是你的答案
你的index.php
<?php
$conn = mysqli_connect("localhost","root","","test_db");
?>
<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="//code.jquery.com/jquery-1.11.2.min.js"> </script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"> </script>
<script type="text/javascript">
$(document).ready(function(){
$('#agencyID_dwn').change(function(){
var reg_number = $(this).val();
var data_String;
data_String = 'reg_number='+reg_number;
$.post('dataGet.php',data_String,function(data){
console.log(data);
var data= jQuery.parseJSON(data);
$('#testid').val(data.Name);
});
});
});
</script>
<body>
<form>
<select name="agencyID_dwn" class="idLookup_dwn" id="agencyID_dwn" >
<option selected>...Select...</option>
<?php
$query = "select AgencyName_id from AgencyName";
$result = mysqli_query($conn,$query);
while($row = mysqli_fetch_array($result)){
?>
<option value="<?php echo $row['AgencyName_id'];?>">
<?php echo $row['AgencyName_id'];?></option>
<?php
}
?>
</select>
// for input text
<input type="text" id="testid">
// submit button
<input type="submit" name="lookupSubmit">
</form>
</body>
</html>
和您的 dataGet.php 文件如下
<?php
$conn = mysqli_connect("localhost","root","","test_db");
$reg_number=$_POST['reg_number'];
$query = "select * from AgencyName where AgencyName_id = '$reg_number'" ;
$result=mysqli_query($conn, $query);
$data = mysqli_fetch_assoc($result);
// print_r($data);
echo json_encode($data);
exit();
?>
just ccheck your table name and all will work
我的过程是这样的:我有一个下拉菜单和文本框。当我从下拉列表中 select 一个 id(唯一 id)然后单击提交按钮时想要将相应的名称显示到文本框。
我的数据库字段:
id
(自动递增)AgencyName_id
(唯一 ID)- 姓名
dispay.html
<select name="agencyID_dwn" class="idLookup_dwn" id="agencyID_dwn" >
<option selected>...Select...</option>
<?php
while($row = mysqli_fetch_array($result)){
?>
<option value="<?php echo $row['AgencyName_id'];?>">
<?php echo $row['AgencyName_id'];?></option>
<?php
}
?>
</select>
// for input text
<input type="text" id="testid">
// submit button
<input type="submit" name="lookupSubmit">
dataGet.php
<?php
if (isset($_POST["lookupSubmit"])) {
$user_id=$_POST['agencyID_dwn'];
$query = "select * from AgencyHome where AgencyName_id = '$user_id'" ;
$result=mysqli_query($db, $query);
$data = mysqli_fetch_assoc($result);
echo json_encode($data);
exit();
}
?>
myjson.js
<script src="//code.jquery.com/jquery-1.11.2.min.js"> </script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"> </script>
<script type="text/javascript">
$(document).ready(function(){
$('#agencyID_dwn').change(function(){
var reg_number = $(this).val();
var data_String;
data_String = 'reg_number='+reg_number;
$.post('dataGet.php',data_String,function(data){
var data= jQuery.parseJSON(data);
$('#testid').val(data.Name);
});
});
});
</script>
当我点击提交按钮时 我在 "dataGet.php" 中将数据库结果作为数组获取。但是在我的代码中文本框中没有显示 result.Any 错误?
在 dataGet.php、
中这样尝试while ($row = mysqli_fetch_assoc($result)) {
echo $row["Name"];
}
这是你的答案
你的index.php
<?php
$conn = mysqli_connect("localhost","root","","test_db");
?>
<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="//code.jquery.com/jquery-1.11.2.min.js"> </script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"> </script>
<script type="text/javascript">
$(document).ready(function(){
$('#agencyID_dwn').change(function(){
var reg_number = $(this).val();
var data_String;
data_String = 'reg_number='+reg_number;
$.post('dataGet.php',data_String,function(data){
console.log(data);
var data= jQuery.parseJSON(data);
$('#testid').val(data.Name);
});
});
});
</script>
<body>
<form>
<select name="agencyID_dwn" class="idLookup_dwn" id="agencyID_dwn" >
<option selected>...Select...</option>
<?php
$query = "select AgencyName_id from AgencyName";
$result = mysqli_query($conn,$query);
while($row = mysqli_fetch_array($result)){
?>
<option value="<?php echo $row['AgencyName_id'];?>">
<?php echo $row['AgencyName_id'];?></option>
<?php
}
?>
</select>
// for input text
<input type="text" id="testid">
// submit button
<input type="submit" name="lookupSubmit">
</form>
</body>
</html>
和您的 dataGet.php 文件如下
<?php
$conn = mysqli_connect("localhost","root","","test_db");
$reg_number=$_POST['reg_number'];
$query = "select * from AgencyName where AgencyName_id = '$reg_number'" ;
$result=mysqli_query($conn, $query);
$data = mysqli_fetch_assoc($result);
// print_r($data);
echo json_encode($data);
exit();
?>
just ccheck your table name and all will work