使用Ajax的jQuery Autocomplete无法解析

时间:2014-04-25 19:32:00

标签: jquery ajax autocomplete

我尝试使用带有ajax的基本自动完成功能。我无法理解结果。我对jQuery比较陌生,所以我为我的语法道歉,我在PHP上做得更好。

$("#category_title").autocomplete({
  source: function (request, response) {
    $.ajax({
       url: 'index.php?controller=AdminEvents&action=AutoComplete&variable=asdf',
       type: 'GET',
       success: function(data){
         response(data);
       }
    });
  },
  minLength: 2
});

来自控制器的响应是样本数据,实际上还没有从数据库中获取任何内容:

if ($this->isXHR())
{
  //$response = "{value1:test, value2:test2}";
  $response['value1'] = "test";
  $response['value2'] = "test2";
  $json = json_encode($response);
  print($json);
}

这里有一个对我来说很奇怪的部分..基本上,这个工作并弹出自动完成框,但这里有什么回复:

enter image description here

为什么?

谢谢你的时间!

2 个答案:

答案 0 :(得分:0)

试试这个:

<强> Jquery的

$(document).ready(function(){
    $('#zipsearch').autocomplete({source:'suggest_zip.php', minLength:2});
});

<强> PHP

$response = array();
$response[0]=array('label'=>'test','value'=>'test');
$response[1]=array('label'=>'test2','value'=>'test2');
echo json_encode($response);

答案 1 :(得分:0)

可能这会帮助你

<强> jquery的

$("#zipsearch").autocomplete({
                    source: function(req,res) {
                        $.ajax({
                            url: "index.php?controller=AdminEvents&action=AutoComplete&variable=asdf",
                            dataType: "json",
                            type: "GET",
                            data: {
                                term: req.term
                            },
                            success: function(data) {
                                res($.map(data, function(item) {
                                    return {
                                        label: item.value1,
                                        value: item.value1
                                    };
                                }));
                            },
                            error: function(xhr) {
                                alert(xhr.status + ' : ' + xhr.statusText);
                            }
                        });
                    }
                });

<强> PHP

<?php
$response=array();
$response[0]['value1'] = "test";
$response[1]['value1'] = "test2";
print json_encode($response);
?>