2011-02-08 11 views
0

私は突然すべての作業を停止した以下のコードを持っています。オートコンプリートでは結果が表示されません。Jqueryオートコンプリートで何も返されません!

私は手動でデータを送信する一時的なフォームを作成し、それはjsonデータを正常に返します。次に、ページが呼び出されたときにjsonをテキストファイルに保存して、実際にリクエストを出していることをテストしました。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Customer Management System</title> 
<link type="text/css" href="http://localhost/stack_ci_2/public_html/includes/jquery/css/smoothness/jquery-ui-1.8.5.custom.css" rel="stylesheet" /> 
<script type="text/javascript" src="http://localhost/stack_ci_2/public_html/includes/jquery/jquery-1.4.2.min.js"></script> 
<script type="text/javascript" src="http://localhost/stack_ci_2/public_html/includes/jquery/jquery-ui-1.8.5.custom.min.js"></script> 
<script type="text/javascript"> 

$(document).ready(function(){ 

// Get matches for customer search. 
    $("#customer_search_ref").autocomplete({ 
     minLength: 2, 
     source: function(request, response) { 
      $.ajax({ 
       url: "<?php echo site_url('customer/ajax_customer_search'); ?>", 
       data: { term: $("#customer_search_ref").val()}, 
       dataType: "json", 
       type: "POST", 
       success: function(data){ 
       response(data); 
       } 
      }); 
     }, 
     // Inputs customer data into forms. 
     select: function(event, ui){ 
      $("#customer_name").focus(); 
      $("#tabs").tabs("select",0); 
     } 
    }); 

}); 

JSONデータは、マニュアル投稿とテキストファイルで返されます。

[{"id":"114","name":"Claire","surname":"Taylor","address_1":"add1","address_2":"add2","address_3":"add3","city":"city","county":"county","postcode":"postcode","country":"country","email":"email","home_tel":"home","mobile_tel":"mobile","work_tel":"work","notes":"notes","value":"Claire Taylor - 114","label":"114 - Claire Taylor"}] 

ラベルと値が返されないかもしれないと思いましたが、

また、jsファイルとcssファイルが正常に読み込まれており、XHRがこれらのファイルをすべてFirebugでテストしていることを要求しています。

アイデア?

答えて

0

Firebugコンソールを使用して応答内容を確認することをお勧めします。

+0

がために生成されたURLのための私のHTML exepctと同じに見えます右の応答を作成するためにあなたのデータをマージする$ .MAPメソッドを使用することができますアヤックスだけで動作します。私は何を探していますか? – John

+0

@John - Firebugのコンソールタブで、少し下向きの矢印をクリックし、 'Show XMLHttpRequests'がチェックされていることを確認してください。ページをリロードします。コンソールには、AJAXリクエストのURLが表示されます。行の+矢印をクリックすると、返されたものが表示されます。返されたものが正しいのでしょうか? – Scoobler

0

の主なプロパティ名としてlabelvalueを使用する必要があり、私はあなた返さJSONはソースが必要な形式に従っていないと思います。私は[[value1、key2:value2]]ではなく、[value1 '、' value2 '、.....]と考えています。

jquery UIオートコンプリートソースオプションをもう一度参照してください。

+0

http://jqueryui.com/demos/autocomplete/ – Anooj

0

あなたは、私は、これが出力として役立つだろうどのように見ていけない

success: function(data){ 
    var result = $.map(data, function(item){ 
     return { 
      label: item.name, 
      value: item.id 
     } 
    }); 
    response(result); 
} 
関連する問題