为了根据类别对产品进行分类,我通过ajax请求完成了这项工作。现在发生的事情是当我发出第二个ajax请求时(通过选中第二个复选框),它首先需要先传递值。
让我们说类别ID为' 11',' 12',' 13'。首先要求我传递价值' 12'到ajax文件,在第二次请求时,我传递了价值' 11' &安培; ' 12'到ajax文件。文件理解的是两个请求:一个是' 12' &安培;另一个是' 11' &安培; ' 12&#39 ;.所以它给出了错误的结果。
看看我的代码:
的index.php
$.ajax({
type: "POST",
url: "ajax_showsubdiv.php",
data: {cat_id:cat_id,sub_cat:sub_cat,sub_cat1:sub_cat1,sub_cat2:sub_cat2},
success: function(option){
$('.autoload').replaceWith(option);
}
});
e.preventDefault;
});
ajax_subdiv.php
$(document).ready(function() {
var cat_id= <?php echo $cat_id; ?>;
var sub_cat= <?php echo $sub_cat; ?>;
var sub_cat1= <?php echo $sub_cat1; ?>;
var sub_cat2= <?php echo $sub_cat2; ?>;
$('.autoload').load("ajax_autoload.php", {'group_no':track_load,'sub_cat':sub_cat,
'sub_cat1':sub_cat1,'sub_cat2':sub_cat2},
function() {track_load++;}); //load first group
$('.animation_image').delay(2000).fadeOut();
$(window).scroll(function() {
if(!flag){
if($(window).scrollTop() + $(window).height() >= ($(document).height()-350))
{
if(track_load < total_groups && loading==false)
{
loading = true;
$('.animation_image').show();
alert(sub_cat);//This two gives total 4 results on second request
alert(sub_cat1);//First from previous request & second from this request
$.post('ajax_autoload.php',{'group_no':track_load,
'sub_cat':sub_cat,'sub_cat1':sub_cat1,'sub_cat2':sub_cat2
}, function(data){
$(".autoload").append(data);
$('.animation_image').hide();
track_load++;
loading = false;
}).fail(function(xhr, ajaxOptions, thrownError) { //any errors?
alert(thrownError); //alert with HTTP error
$('.animation_image').hide(); //hide loading image
loading = false;
});
}
}
}
});
});
ajax_autoload 文件只取结果并以我的格式显示,该文件工作正常。 任何人都可以帮助发现我正在做的错误吗?我现在已经为这个解决方案工作了3-4天。
修改 基本上我需要的是,在每个ajax调用上创建一个新的新请求,忘记以前的请求。