我尝试使用 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;
}
答案 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,你可以直接通过代码进行调试,我假设你没有设置它。