我正在制作一个网络应用。主索引页面有一个用于搜索的大输入标记。一个人输入手机号码,通过AJAX和php,我会在MySQL数据库中进行实时搜索。
我能够从数据库中检索所需的行。我试图在结果数组上做一个print_r(),然后出现。但是当我尝试只使用数组的一个元素时,它并没有。
请查看您是否能找到问题:
Javascript
<script>
$(document).ready(function(e) {
$('#search').keyup(function(e) {
if($(this).val().length > 2){
$.get('php/search.php', {input: $(this).val()}, function(data){
alert(data);
});
}
});
});
</script>
php / search.php文件是:
<?php
require_once 'customer.php';
$input = $_REQUEST['input'];
print_r($cus->read($input));
?>
customer.php文件是:
public function read($input) {
//What search needs to do
//Part 1 - Check if input is a mobile number or Text
if(is_numeric($input) && strlen($input) > 2){
//Search in mobile number
$sql = "SELECT * FROM customers WHERE mobile LIKE '{$input}%' LIMIT 1";
$result = $this->query($sql);
$output = json_encode(mysqli_fetch_assoc($result));
return $output;
}else{}
}
$cus = new Customer();
如果我删除search.php中的print_r函数并在javascript中更改
alert(data);
到
alert(data[0]);
我收到一条警告,上面写着&#34; undefined&#34;。
奇怪的是,如果我改为
alert(data[id]);
没有任何反应。但如果我换到
alert(data[name]);
我再次未定义。
答案 0 :(得分:1)
试试这个
$(function() {
$('#search').keyup(function(e) {
var val = $(this).val();
if (val.length > 2) {
$.get('php/search.php', {
input: val
}, function(data) {
var res = $.parseJSON(data);
if (res) alert(res["name"]);
});
}
});
});