1

問題は、最初の選択ボックスをクリックすると、値が表示された後、2番目の選択ボックスがトリガーされることです。Ajaxで実装しましたが、正常にレンダリングされましたが、他のテキストフィールドの値がなくなっています。どうすればrespondehtml(success ajax call)の特定の部分をレンダリングできますか?

$(document).ready(function(){ 

    if ($('#product_category').val() == 'Choose Category')
        document.getElementById('product_subcategory').disabled = true;

    $('#product_category').change(function () {   
        if ($('#product_category').val() == 'Choose Category')
            document.getElementById('product_subcategory').disabled = true;
        else
            document.getElementById('product_subcategory').disabled = false;


        data = $('#product_category').val();
        //alert(data);

        var param = 'category_name=' + data;
        $.ajax({
          url: MYURL,
          data: param,
          success: function(result) {
            alert('Choose product subcategory');
            alert(param);
            $('body').html('');
            $('body').html(result);
          }
        });
       //   window.location = MYURL?category_name="+data;
    });

    $('#product_subcategory').change(function () {    
        data = $('#product_subcategory').val();
     //     paramCategory = $(document).getUrlParam('category_name');
      //    alert(paramCategory);

        $.get(MYURL, function(data){
            alert("Data Loaded: " + data);
            });
        //window.location = MYURL?subcategory_name=" +  data;
    });

});

私のフォームでは、$ _GET['category_name']を使用して値Ajaxの戻り値を取得します。Firebugでデバッグしましたが、正常に実行されました。htmlを再度レンダリングしようとしましたが、以前のtextareaの値とtextfielの値は、$('body')。html('');であるためなくなっています。$('body')。html(result);では、成功したajaxの戻り値を取得し、PHPで使用するにはどうすればよいでしょうか。

混乱があれば教えてください...お時間を割いていただきありがとうございます。


うーん、私はdivを使用していて、それが成功したajax呼び出しを返したときのDivを表示しています。

4

4 に答える 4

1

問題はここにあります、

$('body').html('');
$('body').html(result);

あなたは全身を空白にし、新しい結果を挿入しています。あなたはそれをただに変更する必要があります

$('#second_select_box_id').html(result);
于 2012-10-05T06:32:52.557 に答える
1
$('body').html('');
$('body').html(result);

これはページを空にして結果を挿入することです。本当にやりたいことは、2番目のドロップダウンに結果をロードすることだと思います。そのためには、次のことを行う必要があります。

$("#product_subcategory").html(result);

もちろん、これはあなたのajax関数が結果に何を返すかに依存します

于 2012-10-05T06:32:56.910 に答える
0

これを試していただけますか

$(body).html('');
$(body).html(result);
于 2012-10-05T06:32:10.280 に答える
0

それを行うには2つの方法があります。

  1. Ajax呼び出しのデータを返すときに、PhPからテキストを追加します

  2. ページを読み込んだ後、データをテキストボックスに追加し直します。

    data = $('#product_category')。val(); // alert(data);

    var param ='category_name='+データ; $ .ajax({url:MYURL、data:param、success:function(result){alert('Choose product subcategory'); alert(param); $('body')。html(''); $( ' body').html(result); $('#product_category')。val(data); }});

于 2012-10-05T06:38:28.240 に答える