如何操作/访问从自动完成ajax收到的json?

时间:2016-03-08 15:57:03

标签: php jquery mysql json ajax

我正在开发一个不是由我开发的Web应用程序,我有以下自动完成代码,可以与AJAXcall一起使用:

$("#tags").autocomplete({
    minLength: 2,
    source: function (request, response) {
        $.ajax({
            url: "http://lainz.softwebsrl.it/ajax/autocompletecibo",
            dataType: "json",
            crossDomain: true,
            type : 'post',
            data:{
                valore: request.term,
            },
            success: function (data) {
                response(data);
                console.log(data);
            }
        });
    }

以及我在文件中的下方:

<div class="div1" style="float: left">
    <strong>Cerca Prodotto</strong><br/><br/>

    <form class="form">
        <div>
            <input type="text" id="tags" value="">
        </div>
        <div>
            <img class="btnaggiungi" src="http://lainz.softwebsrl.it/img/carrello.jpg" alt="Aggiungi" id="add_newProduct"/>
        </div>
    </form>
</div>

问题是我不明白如何从PHP访问收到的JSON。 PHP查询MySQL并最终执行此操作:

$ris2 = array();
foreach($ris as $single) 
{
    $value = $single["cibo"];
    $category = $single["categoria"];
    $id = $single["id"];
    $ris2[] = array(
        "value" => $value,
        "id" => $id,
        "category" => $category
    );
}
$valuesJson = Zend_Json::encode($ris2);
echo $valuesJson;

$ris中的fetchAll()包含value查询结果的位置。当AJAX终止时,如何访问idcategory,{{1}}?他们在哪儿?

1 个答案:

答案 0 :(得分:1)

检查回调函数中的'data'值,成功。

 success: function (data) {
     response(data);
     console.log(data);
 }

如果数据类型的值是对象,

 console.log(typeof data, data.id, data.value);

如果数据不是预期值,请检查Chrome开发网络标签的XHR响应数据。