处理阿贾克斯返回值
我搜索了很多,但我找不到任何东西。下面的函数发出一个数据库请求并通过$ .post获取数据。我在内部函数中获取数据,但在外部需要它将一些数据等同于outputString变量。如果你阅读代码,你会看到我需要的东西。处理阿贾克斯返回值
function calculatePrice(checkInDate, checkOutDate, nights){
var rentDetailsArr = <?php echo json_encode($periods); ?>;
var minDays = ["<?php echo implode('","',$minDaysArr)?>"];
var outputString ="";
var stDate = "2010-02-10";
var endDate = "2010-09-29";
var xxx = $.post('testData.php',
{ opType:"getSelectedPeriodDetails", startDate: stDate, endDate: endDate },
function getData(data) {
$(data).each (function (index){
//I am able to get the data in here.but i need to equal it to outputString variable.
var price = data['period_id'][0];
//alert(price);
alert(price);
});
}, "json");
//when I equal $.post return to xxx variable, the return is as [object XMLHttpRequest ]
alert(xxx);
return outputString;
}
现在我该如何处理数据输出端?..可以通过xxx变量处理数据。如果可以,我将如何解析它?对不起,如果我在解释问题时使用了错误的术语。我不是很熟悉,但我仍然可以使用。
您可以设置outputString AJAX回调函数内是这样的:
$(data).each (function (index){
// set price to outputString
outputString = data['period_id'][0];
});
我已经问了两个问题。抱歉回复晚了。我很感激你的帮助。我警告函数中的数据['period_id'] [0]的值,我也使用outputString将它从函数中提醒出来。我所拥有的功能在内部警报之前正在运行。在Ajax内部有一个DB访问需要一两秒钟来提醒响应。所以那里有一个序列问题。非常感谢所有的帮助.Ozlem。 – user403295 2010-11-14 23:18:47
在$(data).each
的price
总会有最后的指数值。我假设你会需要所有的索引值。作为@alififty回答,你可以在outputString持有它,然后让outputString一个数组,将让所有的索引值:
var outputString = [];
$(data).each (function (index){
// set price to outputString
outputString.push(data['period_id'][0]);
});
此外,如果你想要做的结果一样东西:
var price = calculatePrice("xxxx", "xxxx", "xxxx").Tax();
然后您可以通过JavaScript Function Chaining
function hello() {
if(!(this instanceof hello))
return new hello();
var _hello = "Hello ";
this.world = function(message) {
alert(_hello + message);
}
}
hello().world("World!");
异步JavaScript做到这一点,XML是异步。
当您收到HTTP响应时,您传递给post
的功能将运行,而不是立即生效。
你必须处理里面的那个回调函数。你不能从回来,因为它太。
根据我的经验,你不能这样做(任何人都可以纠正我),你需要编程任何需要做不同的事情,以便AJAX的回调可以处理它。 – 2010-11-12 07:16:07
什么是outputString看起来像?它是否包含价格价值? – subosito 2010-11-12 07:17:58