成功Ajax后呈现html的特定部分

时间:2012-10-05 06:25:47

标签: php javascript jquery html ajax

Myproblem是当我点击我的第一个选择框时,在有值之后,它将触发第二个选择框。我在Ajax中实现它,但成功渲染,但我的其他文本字段值已消失。我怎么能只呈现响应html的特定部分(成功ajax调用)?

$(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 个答案:

答案 0 :(得分:1)

问题出在这里,

$('body').html('');
$('body').html(result);
你是整个身体并插入新的结果。您必须将其更改为

$('#second_select_box_id').html(result);

答案 1 :(得分:1)

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

这是在清空您的页面并在其中插入结果,我想说你真正想做的是用结果加载你的第二个下拉列表,为此你需要做什么

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

当然,这取决于你在结果上返回的ajax函数是什么

答案 2 :(得分:0)

你能试试吗

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

答案 3 :(得分:0)

您有两种方法可以做到这一点。

  1. 在返回Ajax调用数据时从PhP添加文本

  2. 加载页面后,将数据添加回文本框。

    data = $('#product_category')。val();     //警报(数据);

    var param ='category_name ='+ data; $就({   url:MYURL,   数据:param,   成功:功能(结果){     alert('选择产品子类别');     警报(PARAM);     $( '主体')HTML( '');     $( '主体')HTML(结果);     的 $( '#PRODUCT_CATEGORY')VAL(数据);   } });