我有一个基本表单,当我从下拉列表中选择用户时,我希望在其下方显示其他字段,例如电子邮件地址和职位。
过程将是:
用户从下拉列表中选择名称 PHP,JQUERY查询mysql数据库,其中user等于从下拉列表中选择的 电子邮件地址和职务名称字段显示在下面,填充信息。
我的JQuery似乎无法在我的页面上工作......
我使用了此Stack Overflow问题中的代码,其中我的回复已被删除,因为它不是':Populate input fields with values when option is selected - php mysql
对此有任何帮助将不胜感激!
self_submit.html
<html>
<head>
<title>TEST</title>
<script>
$(document).ready(function(){
$('#user').on('change',function(){
var user = $(this).val();
$.ajax({
url : "getUser.php",
dataType: 'json',
type: 'POST',
async : false,
data : { user : user},
success : function(data) {
userData = json.parse(data);
$('#age').val(userData.age);
$('#email').val(userData.email);
}
});
});
});
</script>
</head>
<body>
<form>
User
<select name="user" id="user">
<option>-- Select User --</option>
<option value="username1">name1</option>
<option value="username1">name2</option>
<option value="username1">name3</option>
</select>
<p>
Age
<input type="text" name="jobtitle" id="jobtitle">
</p>
<p>
Email
<input type="text" name="email" id="email">
</p>
</form>
</body>
</html>
getUser.php
<?php
$link = mysqli_connect("localhost", "root", "", "test");
$user = $_GET['user'];
$sql = mysqli_query($link, "SELECT jobtitle, email FROM tblusers WHERE username = '".$user."' ");
$row = mysqli_fetch_array($sql);
json_encode($row);die;
?>
提前致谢
答案 0 :(得分:1)
您需要将ajax调用更改为:
$.ajax({
url : "getUser.php",
dataType: 'json',
type: 'POST',
data : { user : user },
success : function(data) {
userData = json.parse(data);
// $('#age').val(userData.age);
$('#jobtitle').val(userData.jobtitle); // Since you are selecting jobtitle, not age
$('#email').val(userData.email);
}
});
而且你忘了回复你的数据:
<?php
$link = mysqli_connect("localhost", "root", "", "test");
$user = $_REQUEST['user'];
$sql = mysqli_query($link, "SELECT jobtitle, email FROM tblusers WHERE username = '".$user."' ");
$row = mysqli_fetch_array($sql);
echo json_encode($row);
exit();
?>
希望这有帮助!
答案 1 :(得分:0)
在表单标记中定义“POST”方法