0

私がやろうとしているのは、jqueryの選択によって選択された要素の値を取得することです。その後、それらの値はajaxを介してphpスクリプトに投稿され、データベースからデータを取得して同じページに表示します(autocompeteと呼ばれるもの)。

var marvalue=$("input[name=m_status]:checked").val();
var fromhvalue=$("#fromheight").val();
var tohvalue=$("#toheight").val();
var value = $("#edu_det1").val();
alert (value);
var regvalue = $("#religion").val();
alert (regvalue);
var occvalue = $("#occupation").val();
alert (occvalue);
var convalue = $("#country").val();
alert (convalue);

アラートは正しい値をチェックするためにあります。上記のコードを見るとわかるように、これはさまざまな入力要素から値を取得します。以下は私がphpに投稿するために使用したコードです

/*                              
$.post("regsearch.php", {queryString: ""+value+"",queryString1: ""+marvalue+"",queryStringfage: ""+fage+"",queryStringtage: ""+tage+""+queryStringfromh: ""+fromhvalue+""+queryStringtoh: ""+tohvalue+""+}, function(data) { // Do an AJAX call
            $('#suggestions').fadeIn(); // Show the suggestions box
            $('#suggestions').html(data); // Fill the suggestions box
        });
                                        */

問題

コメントが削除されてもアラートポップアップも表示されず、結果も表示されない場合。クエリは投稿されないので、結果についてはOKです。
主な部分は、私が以下のコードを使用した場合にのみ保持されm_statusedu_det1それが機能することです。

marvalue=$("input[name=m_status]:checked").val();
alert (marvalue);

var value = $("#edu_det1").val();

alert (value); 

上記の郵便番号は

$.post("regsearch.php", {
    queryString: ""+value+"",
    queryString1: ""+marvalue+"",
    queryStringfage: ""+fage+"",queryStringtage: ""+tage+""
}, function(data) {
    // Do an AJAX call
    $('#suggestions').fadeIn(); // Show the suggestions box
    $('#suggestions').html(data); // Fill the suggestions box
});

年齢とその検証のコードはここに追加されていません。問題は何ですか?これをどのように整理するのですか?

4

3 に答える 3

0

まず最初に、コンソールを使用して Javascript エラーを確認する必要があります。たとえば、そのクエリ文字列は未定義です。

また、アラートの代わりにconsole.logを使用したいと思います。これは、煩わしさが少なく、より有益です。

次に: fe ""+marvalue+"" を使用する必要はありません - ただ marvalue を使用してください。一方、fe queryString は引用符で囲む必要があります...

$.post("regsearch.php", {'queryString':value,'queryString1': marvalue,'queryStringfage':fage,'queryStringtage':tage,'queryStringfromh': fromhvalue,'queryStringtoh':tohvalue}, function(data) { 
            $('#suggestions').fadeIn();
            $('#suggestions').html(data);
});
于 2012-08-22T13:45:09.853 に答える
0

serialize()jquery関数を使うとより良いでしょう。これにより、フォームの操作が簡単になります。

var querstring = $(form).serialize();

上記が役立ちます

于 2012-08-22T13:45:37.967 に答える
0

ajax post jQuery.ajax() を使用すると同じことが行われ、ページ内のフィールドをシリアル化することもできると思います。

http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings

同様のタイプのコードを実行しました

UserName は私が渡しているフィールドです

        var data = $('#Username').serialize();
        $('#usernameCheck').empty();

        if (!$("form").validate().element("#Username"))
            return;

        $.ajax({
            url: '/SignUp/CheckUsername',
            type: 'POST',
            data: data,
            async: true,
            success: function (result) {
                if (result == 1) {

                    $('#usernameCheck').html('<font color=green>Username available</font>');
                    usernameOK = true;
                }
                else if (result == 2) {

                    $('#usernameCheck').html('<font color=red>Username not available</font>');
                    usernameOK = false;
                }
                else {
                    $('#usernameCheck').empty();
                    usernameOK = false;
                }

            }
        });
于 2012-08-22T13:46:27.450 に答える