我正在构建一个Web日历应用程序,我正在尝试添加一个功能,在发送表单之前检查数据库,看看我们是否可以添加日历事件。
现在我有这个脚本尝试从PHP文件中获取响应:
// send form data using ajax requests
$.post(
"addons/validate_event.php",
$("#modif_inventaire").serialize(),
function(response){
if (response) {
var htmlresponse = "";
$.each(response, function(key, value) {
htmlresponse += key + ': ' + value;
});
alert(response)
alert(htmlresponse)
}
}
);
响应“addons / validate_event.php”将如下所示:{}
(空==成功)或者像这样:
{"20120106":[1300,1430,1510,"1600"],"20120107":["0900",1000,"1100","1200","1300","1400","1500"]}
基本上,我有一个PHP脚本,检查我们是否可以添加事件,如果是,它返回一个empty
数组。否则,它会以[{1}}格式返回包含dates
的数组,并且每个日期都有一个格式为yyyymmdd
的可用hours
数组。
但我的问题是,当我尝试迭代数组时,hhmm
给了我答案alert(response)
,但{"20120106":[1300,143 ....
给了我这个:
alert(htmlresponse)
我错过了什么?
非常感谢
乔尔
答案 0 :(得分:1)
如果您想要$ .get / $ .post自动解析JSON响应,您需要传入' json'作为第四个论点,如下:
// send form data using ajax requests
$.post(
"addons/validate_event.php",
$("#modif_inventaire").serialize(),
function(response){
if (response) {
var htmlresponse = "";
$.each(response, function(key, value) {
htmlresponse += key + ': ' + value;
});
alert(response)
alert(htmlresponse)
}
}, 'json' // this argument is needed so jquery will treat response as JSON object and not text
);
答案 1 :(得分:0)
处理你回调json数据。我有一个好习惯。希望对你有所帮助。
第1步:$.trim(data);
步骤2:var obj = jQuery.parseJSON(data);
第3步:处理您的代码。