0

現在、複数の選択ボックスから単一の値を投稿しています。文字列ではなくフィールド activity と yearOfBirth の配列として変数を投稿したい場合、現在のコードを変更してこれを達成するにはどうすればよいですか?

ありがとう!

function showUser() {
    // getting the value that user typed
    var firstName = $("#firstName").val();
    var lastName = $("#lastName").val();
    var sex = $("#sex").val();
    var registrationType = $("#registrationType").val();
    var activity = $("#activity").val();
    var yearOfBirth = $("#yearOfBirth").val();

    // forming the queryString
    var data = 'search_firstName=' + firstName + '&search_lastName=' + lastName + '&search_registrationType=' + registrationType + '&search_activity=' + activity + '&search_yearOfBirth=' + yearOfBirth + '&search_sex=' + sex;

    // if searchString is not empty
    if (firstName || lastName || sex || registrationType || activity || yearOfBirth) {
        // ajax call
        $.ajax({
            type: "POST",
            url: "groupQsearchMember.php",
            data: data,
            beforeSend: function() {
                $('#whileLoading').show();
                $('#results').hide();
            },
            complete: function() {
                $('#whileLoading').hide();
            },
            success: function(html) {
                $("#results").html(html);
                $("#results").fadeIn(700);
            },

        });
    }
    return false;
};​
4

2 に答える 2

0

選択フィールドの値を配列に分割する必要があります。単純に を追加.split(',')してから、配列を反復処理して配列ブラケットを追加します。次に例を示します。

var registrationTypeString = "";
$("#registrationType").val().split(',').each(function(item){
    registrationTypeString += '&registrationType[]=' + item;
});

//..

var data = 'search_firstName=' + firstName + '&search_lastName=' + lastName + registrationTypeString + '&search_activity=' + activity + '&search_yearOfBirth=' + yearOfBirth + '&search_sex=' + sex;

選択フィールドでこれを行うと、PHP に配列が作成されます。

于 2012-10-05T17:05:44.267 に答える
0

POST データを手動で作成する代わりに、フォーム要素に目的のname属性があることを確認し、次のdataように作成します。

 var data = $("#firstName, #lastName, #sex, #registrationType, #activity, #yearOfBirth").serialize();

jQueryのドキュメントserialize()によると、「標準のURLエンコード表記のテキスト文字列」が作成されます。

于 2016-01-20T15:39:37.597 に答える