0

ul をアルファベット順に az または za にソートする JavaScript があります。1ページ目では問題なく動作しますが、複数のページがある場合、2ページ目のリストは無視されます.

そのため、JavaScript を使用して li をソートする代わりに、選択内容をページのクエリに戻してリロードしたいと考えています。

これが私のスクリプトです。現在、そのほとんどは冗長です。

var select = document.getElementById('organise');

        $('#organise').change(function() {

            if(select.value === 'A') {

                $('.recipeTable li').sortElements(function(a,b){

                    var aText = $.text([a]);
                    var bText = $.text([b]);

                    return aText.toLowerCase() > bText.toLowerCase() ? 1 : -1;
                });

            } else {

                $('.recipeTable li').sortElements(function(a,b){

                    var aText = $.text([a]);
                    var bText = $.text([b]);

                    return aText.toLowerCase() > bText.toLowerCase() ? -1 : 1;
                });

            }

        });

したがって、選択したドロップダウン値 (A または Z) を検出し、それを URL に渡してリロードしたいと考えています。私は立ち往生しています;-?

リッチ :)

4

3 に答える 3

1

これが問題に取り組む最善の方法であるかどうかはわかりません。おそらく、ページネーションで何が機能しないかを詳しく説明する必要があります。いずれにせよ、次のようなことを行うことで、必要なことを達成できます (コード コメントの説明)。

var queryString = {};

// Get the previous query string with a little help from PHP
// this shouldn't be a problem since you are already using PHP
// for your project.
queryString = <?php json_encode( $_GET ); ?>;

$('#organise').change( function() {

    // Set the sort property of the object to the value of the select.
    queryString.sort = $(this).val();

    // jQuery will help you serialise the JSON object back to
    // a perfectly valid query string (you may want to escape
    // characters)
    newQueryString = $.param( queryString );

    // Append the new query string
    window.location = newQueryString;

});

この関数は、クエリ文字列が既にあるかどうかを適切にチェックし、それを保持します。また、ユーザーが選択を複数回変更した場合、複数のクエリ文字列が追加されることはありません。

于 2013-02-14T10:04:23.070 に答える
0

URLを変更してパラメータを渡すことができます

 document.location.href = document.location.href + "?arg=" + document.getElementById("organise").value;
于 2013-02-14T09:32:37.063 に答える