0
<script type="text/javascript">
$(document).ready(function(){
$('#tags').autocomplete({
source:function(request,response){
        $.ajax({
         type: "POST",
         data: "",
         url: 'getplacetags.php',
         contentType: "application/json; charset=utf-8",
         dataType: "json",
         success: function (data) {
            var resultSet = data;
            var arr=[];
            for(var i in resultSet)
            {
                arr.push(resultSet[i])
            }
            return arr;
    },
    error: function () {
        alert('failure');
    }
});
    }
});
});
</script>

html-:

<input type="text" id="tags" />

オートコンプリート関数に配列を返す際に問題があります。配列 arr がテキストボックスのオートコンプリートに表示されないのはなぜですか?

json データは getplacetags.php から正常に取得されます

4

3 に答える 3

0

コードを確認したところ、「contentType」を削除した後、正常に動作していることがわかりました。

$('#tags').autocomplete({
    source:function(request,response){
        $.ajax({
             type: "POST",
             data: "",
             url: 'http://ws.geonames.org/searchJSON',
             dataType: "json",
             success: function (data) {
                 alert('success');
            },
            error: function () {    
                alert('failure');
            }
        });
    }
});

ここで作業コードを確認してください: http://jsfiddle.net/Qy49d/

于 2013-08-27T13:31:30.417 に答える
0

return arr;代わりに使用しないでください

response(arr);

つまり、取得したコールバック関数にarrを送信しますresponse

于 2013-08-27T13:32:25.640 に答える