直播AJAX搜索手机号码

时间:2015-05-12 12:17:35

标签: php jquery mysql ajax

我正在制作一个网络应用。主索引页面有一个用于搜索的大输入标记。一个人输入手机号码,通过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();

When it works, this is what i can see:

如果我删除search.php中的print_r函数并在javascript中更改

alert(data);

alert(data[0]);

我收到一条警告,上面写着&#34; undefined&#34;。enter image description here

奇怪的是,如果我改为

alert(data[id]);
没有任何反应。但如果我换到

alert(data[name]);

我再次未定义。

1 个答案:

答案 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"]);
      });
    }
  });
});