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。
答案 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)
您有两种方法可以做到这一点。
在返回Ajax调用数据时从PhP添加文本
加载页面后,将数据添加回文本框。
data = $('#product_category')。val(); //警报(数据);
var param ='category_name ='+ data; $就({ url:MYURL, 数据:param, 成功:功能(结果){ alert('选择产品子类别'); 警报(PARAM); $( '主体')HTML( ''); $( '主体')HTML(结果); 的 $( '#PRODUCT_CATEGORY')VAL(数据); 强> } });