2011-09-17 10 views
0

これは愚かな質問かどうかわかりません...私はjQueryのクリックイベントを使用してJSON配列をソートしようとしています。以下は、私が動作するはずと思った単純化されたhtmlコードです:

<SCRIPT type='text/javascript'> 

function results(json) { 
// display unsorted results in $('#results') 
} 

$('#sort').click(function (json) { 
// sort and display results in $('#results') 
}); 

var query = some_query; 
var json = new Object(); 
$.getJSON(query, results); 

</SCRIPT> 

<A href='javascript:void(0)' id='sort'>Sort</A> 
<DIV id='results'></DIV> 

私はソートリンクをクリックすると、何の応答を取得していないのです。ソート関数をalert(json)に置き換えると、jsonが定義されていませんエラー。私はここで何かを逃していますか?

さらに更新:

私は、コードを修正してきたし、これは動作するはずです。あなたの貢献のためのみんなありがとう:)

<SCRIPT type='text/javascript'> 

function results(json) { 
// display unsorted results in $('#results') 
$('#sort').click(function() {sort(json);}); 
} 

function sort(A) { 
var B = A.sort(sorting()); // function to sort the array 
results(B); 
} 

var query = some_query; 
$.getJSON(query, results); // triggered by listener 

</SCRIPT> 

<A href='javascript:void(0)' id='sort'>Sort</A> 
<DIV id='results'></DIV> 

答えて

0

あなただけの変更のカップルを行う必要があります成功したJSONレスポンスがURLから受信したとき

<SCRIPT type='text/javascript'> 

function results(data, textStatus, jqXHR) { 
    // display unsorted results in $('#results') 
    var json = data; 
} 

$('#sort').click(function() { 
    var query = some_query; 
    $.getJSON(url, query, results); 
}); 

</SCRIPT> 

<A href='javascript:void(0)' id='sort'>Sort</A> 
<DIV id='results'></DIV> 

あなたresults機能は、あなたを送ると呼ばれます$.getJson()へのリクエスト。

+0

ありがとうございました。しかし、私の意図は、さまざまな並べ替えのオプションを持つことです。もしそうでなければ、私はそれをデータベースクエリ自体でやったでしょう。 –

0

クリックハンドラーでは、引数として "json"が必要です。だから議論の範囲でそれを探しています。あなたはグローバル変数として "json"を定義しましたが、あなたが引数としてそれを探しているので、それを見つけられません。

ハンドラに "json"を渡すか、引数の期待値を削除する必要があります。

+0

私は引数の期待値を削除し、IAbstractDownvoteFactorの提案に従っています。しかし、まだソートからの応答はありません。 –

+0

「ソートからの応答なし」と言うとき、どういう意味ですか? sort()のコードが表示されていません。私はそのコードが何かを "見せる"ことを期待しません。 FireBugでGETリクエストを見て、リクエストが発生していないかどうか確認していますか?あなたはそれからの反応を見ますか?投稿したコードのjson変数で何も処理されていないようです。 –

+0

はい、FireBugのGETリクエストのデータがあります。結果関数内でソート関数をテストし、ソート結果を表示するようにしました。複数の並べ替えオプションが必要なので、クリックハンドラを使用して処理できるように分割します。エラーコンソールからエラーが出ず、リンクをクリックすると結果がソートされません。 –

関連する問題