Php 基于下拉选择使用mysql值自动填充表单字段

Php 基于下拉选择使用mysql值自动填充表单字段,php,jquery,html,mysql,Php,Jquery,Html,Mysql,我有一个基本的形式,我想有其他领域出现在下面,如电子邮件地址和职位时,用户是从下拉列表中选择 这一进程将是: 用户从下拉列表中选择名称 PHP,JQUERY查询mysql数据库,其中用户等于下拉列表中的选择 电子邮件地址和职务字段将显示在下面,其中包含填充的信息 我的JQuery在我的页面上似乎不起作用 我使用了堆栈溢出问题中的代码,其中我的回答被删除,因为它不是“解决方案”: 在此方面的任何帮助都将不胜感激 self_submit.html <html> <head>

我有一个基本的形式,我想有其他领域出现在下面,如电子邮件地址和职位时,用户是从下拉列表中选择

这一进程将是:

用户从下拉列表中选择名称 PHP,JQUERY查询mysql数据库,其中用户等于下拉列表中的选择 电子邮件地址和职务字段将显示在下面,其中包含填充的信息

我的JQuery在我的页面上似乎不起作用

我使用了堆栈溢出问题中的代码,其中我的回答被删除,因为它不是“解决方案”:

在此方面的任何帮助都将不胜感激

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;
?>

提前感谢

您需要将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();
?>

希望这有帮助

在表单标签中定义POST方法

下载jquery库供脱机使用或使用google cdn或microsoft-然后在head html标记中引用它 将ajax中的数据更改为data:user=+user,我已经习惯了这种格式 最后,正确使用正确的id名称,错误地引用“id”,您在html电子邮件id中引用= $'jobtitle'.valuerData.age; 而不是 $'email'.valuerData.age 这很好=> $'email'.valuerData.email; $user=$_GET['user'];更改为$user=$\u POST['user']; 这些是我在没有运行代码的情况下观察到的一些错误,如果您仍然遇到问题,请询问
谢谢你的快速回复。然而,我仍在努力让它发挥作用。我已经试过了你的答案和第二个答案。我仍然没有一段代码。我看不出我做错了什么。我已经在这个页面上再次发布了我修改后的代码。请帮助删除async:false,并且您正在发出POST请求,在您使用$\u GET的PHP文件中,请仔细检查我的代码。感谢您在这里帮助我。我一定是错过了什么,因为我现在拥有的正是你所拥有的,但仍然无法实现…:-