如何将获取的数据放入输入字段 - AJAX

时间:2017-01-02 03:17:58

标签: javascript php jquery ajax

我尝试使用 AJAX 在我的数据库中搜索或过滤某些数据,我使用oninput事件来触发该功能。但它没有用,有人可以帮助我找到我的代码中的错误吗?我只是ajax的初学者。

这是我的输入字段

   <div class="form-group">
               <label for="stud_num">Student Number</label>
                <input type="text" name="stud_num" class="form-control stud_num" oninput="loadinfo()" id="stud_num" placeholder="Student Number" style="max-width:150px;" required>
        </div> 

这是我的功能,

  function loadinfo(){
    var stud = $("#stud_num").val();
    $.ajax({
      url:'getrecords.php',
      method:'POST',
      data:{
        "loadinfo": 1,
        "stud": stud,
      },
      success: function(data){
        $('#firstname').val(data.firstname);
      }
    });
  }

这里是php代码,

   if(isset($_POST['loadinfo'])){
    $stud = $_POST['stud'];

    $sql = "SELECT * FROM studmast WHERE stud_no ='$stud'";
    $result = mysqli_query($con,$sql);

       while($row = mysqli_fetch_array($result)){
                  $data[] = array(
                        'lastname' => $row['lastname'],
                        'firstname' => $row['firstname'],
                        'midname' => $row['middlename']
                        );
            }
            echo $data;
   }

2 个答案:

答案 0 :(得分:4)

你不能回应一个php数组......你需要发送一个可以被客户轻松使用的数据格式,而现在最常见的是json。

使用json_encode()转换

尝试

echo json_encode($data);

并确保在dataType:'json

中设置$.ajax

答案 1 :(得分:0)

因为我还没有回复评论.. @nethken正如其他人所说,使用json_encode。请确保将数据发布到相关的php文件中。您可以通过调试开发人员工具中的代码来确认这一点。在发送之前逐步执行代码或警告值(javascript客户端调试)。

接下来,我会在你的php文件中使用var_dump($ _ POST [&#39; stud&#39;]),这将确认值是否到达。您可以通过访问开发人员工具中的网络流量并选择php文件的预览来查看数据。如果你有xDebug,你可以直接通过代码进行调试,我假设你没有设置它。