在线等--ajax嵌套ajax 提示数据是undefined 100
需要到A表中获取数据,再作为查询条件访问B表,就用了AJAX嵌套,外部的ajax没有问题,就是内部的执行后跳转到error...提示我的参数为undefined...第一...
需要到A表中获取数据,再作为查询条件访问B表,就用了AJAX嵌套,外部的ajax没有问题,就是内部的执行后跳转到error...提示我的参数为undefined...
第一个ajax
$.ajax({
type:"POST",
url:"preitem.php",
dataType:"json",
data:{"user":$user,"pwd":$preTime},
success:function(msg){
var $startime=msg.startTime;
var $finishTime=msg.endTime;
var $step=msg.timeInterval;
var $cars =msg.carNum;
setPre($startime,$finishTime,$step,$cars,$preTime) //调用第二个ajax
}
})
---第二个ajax
function setPre(var1,var2,var3,var4,var5){
// var $preTime= window.localStorage["prebookDate"];
//如果时间表里没有当天设置, 读取字典表里默认设置
$startTime = var1; //预约开始时间
$endTime = var2; //预约结束事件
$timeInterval = var3; //时间段间隔
$carNum =var4; //每时间段发班车
$pretime=var5; //预约日期
//$user=var6; //预约客户
if(!$perform){
var $str;
var $getStartTime = getTime1($pretime+" "+$startTime);//开始时间转换为时间戳
var $getEndTime = getTime1($pretime+" "+$endTime);//开始时间转换为时间戳
var $getStartTime1; //初始时间
var $addTime=$getStartTime; //计算后时间
while($addTime<$getEndTime){
$getStartTime1=$addTime;
$addTime +=$timeInterval*60*1000;
var $pres=getDate1($getStartTime1,false)+"-"+getDate1($addTime,false);
// alert($pres);
$.ajax({
type:"POST",
url:"11.php",
// async:false,
dataType:"json",
data:{"pretime":$pres,"carnum":$carNum,"predate":$pretime},
success:function(msg){
$str="<li><a href='#'><img src='/images/car.png'><h2>"
$str += getDate1($getStartTime1,false)+" 至 "+getDate1($addTime,false)
$str += "</h2><p>"
$str += "已预约5辆车,还可预约5辆"
$str += "</p></a><a href='#pageInfo' data-rel='dialog' data-transition='pop'>预约</a></li>"
$("#ul_parTime").append(function(){
return $str;
});
},
error: function(XMLHttpRequest, msg, errorThrown) {
// alert(XMLHttpRequest.status);
// alert(XMLHttpRequest.readyState);
alert(msg.carpre);
// alert(textStatus);
}
})
}
PHP 11.php ==直接返回参数
<?php
header('Content-type:text/html;charset=utf-8');
$predate =$_POST['predate'];
$carNum =$_POST['carnum'];
$pretime=$_POST['pretime'];
$arr['carpre'] =$carNum;
$arr['remind'] = $pretime;
echo encode_json($arr);
?> 展开
第一个ajax
$.ajax({
type:"POST",
url:"preitem.php",
dataType:"json",
data:{"user":$user,"pwd":$preTime},
success:function(msg){
var $startime=msg.startTime;
var $finishTime=msg.endTime;
var $step=msg.timeInterval;
var $cars =msg.carNum;
setPre($startime,$finishTime,$step,$cars,$preTime) //调用第二个ajax
}
})
---第二个ajax
function setPre(var1,var2,var3,var4,var5){
// var $preTime= window.localStorage["prebookDate"];
//如果时间表里没有当天设置, 读取字典表里默认设置
$startTime = var1; //预约开始时间
$endTime = var2; //预约结束事件
$timeInterval = var3; //时间段间隔
$carNum =var4; //每时间段发班车
$pretime=var5; //预约日期
//$user=var6; //预约客户
if(!$perform){
var $str;
var $getStartTime = getTime1($pretime+" "+$startTime);//开始时间转换为时间戳
var $getEndTime = getTime1($pretime+" "+$endTime);//开始时间转换为时间戳
var $getStartTime1; //初始时间
var $addTime=$getStartTime; //计算后时间
while($addTime<$getEndTime){
$getStartTime1=$addTime;
$addTime +=$timeInterval*60*1000;
var $pres=getDate1($getStartTime1,false)+"-"+getDate1($addTime,false);
// alert($pres);
$.ajax({
type:"POST",
url:"11.php",
// async:false,
dataType:"json",
data:{"pretime":$pres,"carnum":$carNum,"predate":$pretime},
success:function(msg){
$str="<li><a href='#'><img src='/images/car.png'><h2>"
$str += getDate1($getStartTime1,false)+" 至 "+getDate1($addTime,false)
$str += "</h2><p>"
$str += "已预约5辆车,还可预约5辆"
$str += "</p></a><a href='#pageInfo' data-rel='dialog' data-transition='pop'>预约</a></li>"
$("#ul_parTime").append(function(){
return $str;
});
},
error: function(XMLHttpRequest, msg, errorThrown) {
// alert(XMLHttpRequest.status);
// alert(XMLHttpRequest.readyState);
alert(msg.carpre);
// alert(textStatus);
}
})
}
PHP 11.php ==直接返回参数
<?php
header('Content-type:text/html;charset=utf-8');
$predate =$_POST['predate'];
$carNum =$_POST['carnum'];
$pretime=$_POST['pretime'];
$arr['carpre'] =$carNum;
$arr['remind'] = $pretime;
echo encode_json($arr);
?> 展开
6个回答
展开全部
type: "POST",
dataType: "json",
url: proxyUrl,
data: datas,
beforeSend: function () { $("#" + P_ProgressBarDivId).show(); },
complete: function () { $("#" + P_ProgressBarDivId).hide(); },
success: function (msg) {
$("#" + P_ShowDataDivId).html("");
$.each(msg.data, function (i, item) {
var reval = "";
reval += "<div class=\"bbsblock\">";
if (item.Reply_ID != null && item.Reply_ID != "") {
var PreReply="";
if(item.PreReply_ID>0)
{
var Url = SiteAppPath+"Ajax/YXAjax.ashx";
var adatas = "&jsonType=GetReplyCom&ReplyID="+item.PreReply_ID;
$.ajax({
type: "POST",
dataType: "text",
url: Url,
data: adatas,
success:function(msg){
PreReply=msg;
}});
}
reval+=PreReply;
reval+=item.Reply_Content
reval += " </div>";
$("#" + P_ShowDataDivId).append(reval);
}
});
},
error: function (xhr, ajaxOptions, thrownError) {
alert(thrownError);
return;
}
});
}
这个写的是一个论坛,有留言回复功能,最外一层ajax是从后台取出所有的留言,最里面一层是获得每层所引用回复,奇怪的是最里面一层ajax虽然执行了,可是最后显示并没有显示出来,在调试的时候,每一层设置一个alert(reval)又能显示出最里面一层,求解这是怎么回事儿,是缓存么?
dataType: "json",
url: proxyUrl,
data: datas,
beforeSend: function () { $("#" + P_ProgressBarDivId).show(); },
complete: function () { $("#" + P_ProgressBarDivId).hide(); },
success: function (msg) {
$("#" + P_ShowDataDivId).html("");
$.each(msg.data, function (i, item) {
var reval = "";
reval += "<div class=\"bbsblock\">";
if (item.Reply_ID != null && item.Reply_ID != "") {
var PreReply="";
if(item.PreReply_ID>0)
{
var Url = SiteAppPath+"Ajax/YXAjax.ashx";
var adatas = "&jsonType=GetReplyCom&ReplyID="+item.PreReply_ID;
$.ajax({
type: "POST",
dataType: "text",
url: Url,
data: adatas,
success:function(msg){
PreReply=msg;
}});
}
reval+=PreReply;
reval+=item.Reply_Content
reval += " </div>";
$("#" + P_ShowDataDivId).append(reval);
}
});
},
error: function (xhr, ajaxOptions, thrownError) {
alert(thrownError);
return;
}
});
}
这个写的是一个论坛,有留言回复功能,最外一层ajax是从后台取出所有的留言,最里面一层是获得每层所引用回复,奇怪的是最里面一层ajax虽然执行了,可是最后显示并没有显示出来,在调试的时候,每一层设置一个alert(reval)又能显示出最里面一层,求解这是怎么回事儿,是缓存么?
展开全部
错误信息贴详细点啊。 你这样说,不知道到底有什么问题。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要用豹纹监控工具看看会来的数据正却不正确啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-04-07
展开全部
if(!$perform) perform从哪儿来的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询