2013-06-16 19 views
7

AJAXを使用してSelect2に結果を表示するのに問題があります。 Javascript ConsoleSelect2:AJAXを使用して結果が表示されない

[

{ "テキスト"::私は、要求が予想されるJSONを返す参照、JavaScriptコンソールを使用して

$(document).ready(function() { 
    $("#producto").select2({ 
     placeholder: 'Select a product', 
     formatResult: productFormatResult, 
     formatSelection: productFormatSelection, 
     dropdownClass: 'bigdrop', 
     escapeMarkup: function(m) { return m; }, 
     minimumInputLength:3, 
     ajax: { 
      url: 'http://foo.foo/listar.json', 
      dataType: 'jsonp', 
      data: function(term, page) { 
       return { 
        q: term 
       }; 
      }, 
      results: function(data, page) { 
       return {results:data}; 
      } 
     } 
    }); 


function productFormatResult(product) { 
    var html = "<table class='product-resultado'><tr>"; 
    if(product.img != undefined) { 
     html += "<td class='product-image'><img src='"+product.img+"'/></td>"; 
    } 
    html += "<td class='product-info'>"; 
    html += product.text + "<br />"; 
    html += product.precio_costo + " CRC <br />"; 
    html += "Existencias: " + product.existencias; 
    html += "</td></tr></table>"; 
    return html; 
} 

function productFormatSelection(product) { 
    return product.text; 
} 

: はここに私のコードである "Fooのプロダクトを"、 "IMG": "#"、 "precio_costo": 45、 "existencias":0、 "ID":2}

]

私はそこに警告を出して何も起こっていないので、function(data, page) { ... }は呼び出されていません。

それはちょうど結果を待ってそこにハングアップ: Hangs waiting for results

答えて

11

を参照してください。

これまでも同じことを経験しました。 JSONの結果は、この基準によって選別され、 期待されるJSONが実際に戻された場合でも、非常に可能性が JSONと2つの異なるフォーマット

としてJSONP見られているので、

PS:これは、より多くのコメントのようなものですが、私はできるので」あなたの質問へのコメントは、私に同行してください

+0

Thanx。あなたは今日私の人生を救った.... – Haritha

+0

あなたは歓迎です;) –

0

私はあなたが値フォームのAJAX呼び出しを返すことができないと考え、AJAX呼び出しがasynchronousからです。。むしろそこで結果を扱う。または下記のリンクに記載されているcallback functionsを使用してください。

がそう dataType: 'jsonp' dataType: 'json'、 あるいは行全体を削除する行を変更してみてください、私はあなたの代わりにJSONPのJSONを返すしていると思います jQuery: Return data after ajax call success

+1

これはプラグインですが、これは単純なAjaxコールではありません。あるいは、 'data'と' results'コールバックがどのくらい正確に動作するのか知っていますか? –

+0

はい、ドキュメントから "このオブジェクトは、ajaxリクエストを実行する関数を手動で書かざるを得ないためのショートカットとして機能します。組み込み関数は、調整やアウト・オブ・オーダーのレスポンスなどのより高度な機能をサポートしています。 - http://ivaynberg.github.io/select2/ – blaze

+0

@Felix Kling ya私は、関数ポインタを渡すような、コールバックの働きを知っているので、関数はポインタによって呼び出されます。また、私はajax呼び出しが非同期であり、値を返すことができないことを知っています。そして、私は、ajaxのコンセプトはどこでも同じなので、OPが遅れていると思ったので、提案をしました。だから、私は「私は思う」答えを答えた。彼が働いている正確なシナリオは分かりません。私はどこでも答えが間違っていますか? –

関連する問題