根据下拉选择自动填充具有mysql值的表单字段

时间:2017-11-03 11:13:55

标签: php jquery html mysql

我有一个基本表单,当我从下拉列表中选择用户时,我希望在其下方显示其他字段,例如电子邮件地址和职位。

过程将是:

用户从下拉列表中选择名称 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;
?>

提前致谢

2 个答案:

答案 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”方法

  • 下载jquery库以供离线使用或使用google cdn或microsoft - 然后在 head html标签中引用它
    • 将ajax中的数据更改为数据:“user =”+ user,我习惯使用此格式
    • 最后正确使用正确的id名称,错误地引用'ids',你在html email id =中引用 $( '#JOBTITLE')VAL(userData.age)。 而不是 的 $( '#电子邮件')。VAL(userData.age) 这很好=&gt; $( '#电子邮件')VAL(userData.email)。 $ user = $ _GET ['user'];更改为 $ user = $ _POST ['user']; 这些是我在没有运行代码的情况下观察到的一些错误,如果仍然遇到问题那么请