Php ajax文件中先前的值在第二个请求中出现

Php ajax文件中先前的值在第二个请求中出现,php,ajax,Php,Ajax,为了根据产品类别对产品进行分类,我通过ajax请求来完成这项工作。现在发生的事情是,当我发出第二个ajax请求(通过选中第二个复选框)时,它首先接受先前传递的值 假设我的分类ID为'11','12','13'。在第一个请求中,我将值“12”传递给ajax文件,在第二个请求中,我将值“11”和“12”传递给ajax文件。文件理解的是两个请求:一个是'12',另一个是'11'和'12'。所以它给出了错误的结果 看看我的代码: index.php $.ajax({ type: "POST",

为了根据产品类别对产品进行分类,我通过ajax请求来完成这项工作。现在发生的事情是,当我发出第二个ajax请求(通过选中第二个复选框)时,它首先接受先前传递的值

假设我的分类ID为'11','12','13'。在第一个请求中,我将值“12”传递给ajax文件,在第二个请求中,我将值“11”和“12”传递给ajax文件。文件理解的是两个请求:一个是'12',另一个是'11'和'12'。所以它给出了错误的结果

看看我的代码:

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;
});
$(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_subdiv.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;
});
$(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;

                });

            }
        }
    }
});
$(文档).ready(函数(){
var cat_id=;
var sub_cat=;
var sub_cat1=;
var sub_cat2=;
$('.autoload').load(“ajax_autoload.php”,{'group_no':track_load,'sub_cat':sub_cat,
“sub_cat1”:sub_cat1,'sub_cat2':sub_cat2},
函数(){track_load++});//加载第一组
$('.animation_image').delay(2000).fadeOut();
$(窗口)。滚动(函数(){
如果(!标志){
如果($(窗口).scrollTop()+$(窗口).height()>=($(文档).height()-350))
{
如果(轨道加载<总组加载==假)
{
加载=真;
$('.animation_image').show();
alert(sub_cat);//这两个函数在第二次请求时总共给出4个结果
警报(sub_cat1);//第一个来自上一个请求,第二个来自此请求
$.post('ajax\u autoload.php',{'group\u no':跟踪加载,
“sub_猫”:sub_猫,“sub_猫1”:sub_猫1,“sub_猫2”:sub_猫2
},函数(数据){
$(“.autoload”).append(数据);
$('.animation_image').hide();
轨道加载++;
加载=假;
}).fail(函数(xhr、ajaxOptions、thrownError){//有错误吗?
警报(thrownError);//带有HTTP错误的警报
$('.animation_image').hide();//隐藏加载图像
加载=假;
});
}
}
}
});
}))

ajax\u autoload文件只需获取结果并以我的格式显示,该文件工作正常。 有人能帮我找出我犯的错误吗?我已经为这个解决方案工作了3-4天了

编辑
基本上我需要的是,在每次ajax调用中创建一个新的请求,忘记以前的请求。

尝试使用“$(“.autoload”).html(数据);”而不是“$”(“.autoload”)。追加(数据)`没用,价值观在那之前就来了。它首先在ajax_showsubdiv.php中获取以前的值,然后使用
$\u POST[“cat_id”]返回检索到的值。基本上,尝试如下更改赋值:
var cat_id=。另外,在index.php代码中,url指向ajax_showsubdiv.php,但在示例中,您提到的文件是ajax_subdiv.phpNah,这是不可能的。我有一些条件,比如$sub_cat=0;如果(isset($_POST['sub_cat']>0)){$sub_cat=$_POST['sub_cat']},那么它就变成了var sub_cat=;所以即使值为0,也可以