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