1

このフォーラムまたはjQueryドキュメントに多数のリソースがあるにもかかわらず、問題が発生しているjQueryオートコンプリートに関する別の質問。

PHPスクリプトからの応答データをjQueryUIでマッピングするのに苦労しています。コードは次のとおりです。

$("#shared-with").autocomplete({
  source: function(request, response) {

    $.ajax({
      type: 'get',
      url: 'ajax/search.php',
      data: { term: request.term },
      success: function(data){

           // alert(data);
           response($.map(data, function(c) {
             return {
                 label: c.name,
                 value: c.nametag
             }
           }));

     }
   });
 }
});

私の問題は、search.phpから返送されるデータは次のようになりますが、応答/マップ関数がjQueryオートコンプリートによって正しく理解されないことです。

echo json_encode(
     array('name' => 'Bill', 'nametag' => 'Big Bill'),
     array('name' => 'Fred', 'nametag' => 'Small Fred'),
);

PS:javascriptポップアップで「data」に警告すると、有効なjavascript配列/オブジェクトが表示されます... PS:「#shared-with」は単なるテキストエリアです

何か案が ?前もって感謝します。

4

1 に答える 1

1

私は、データが実際に私のPHP検索ページから文字列として返されることを発見しました。

私がする必要があるのは、文字列をJS配列に再変換することだけでした。

data = $.parseJSON(data);

response($.map(data, function(c) {
             return {
                 label: c.name,
                 value: c.nametag
             }
}));
于 2013-01-27T16:05:21.980 に答える