我成功发布到PHP文件,并获得了良好的响应。我似乎无法获得的部分是解析它然后在我的页面上显示它。这是我在验证处理程序中的javascript:
submitHandler: function(form) {
var formData = $(form).serialize();
$.post('http://test.php', formData, function(data) {
if(data.success) {
$('#load').show();
var response = i;
$('#load').hide();
//var msg = '';
for(var i = 0; i < x.flights.length; i++) {
msg += '<span>';
msg += '<p>Flight Number: ' + x.flights[i].flight_number + '</p>';
msg += '<p>Cost: ' + x.flights[i].cost + '</p>';
msg += '</span>';
}
//this is were I think it should display. but It's not working
$('#load').html(msg);
这是我的json回复:
success
true
message
"Success"
flights
[Object { flight_number="334", cost="983.40", departure_city="Kearney Regional Airpor...arney, Nebraska - (EAR)", more...}]
0
Object { flight_number="334", cost="983.40", departure_city="Kearney Regional Airpor...arney, Nebraska - (EAR)", more...}
flight_number
"334"
cost
"983.40"
departure_city
"Kearney Regional Airport, Kearney, Nebraska - (EAR)"
arrival_city
"Chadron Muni Airport, Chadron, Nebraska - (CDR)"
departs
"2014-03-19 04:33:00"
arrives
"2014-03-19 08:12:00"
duration
"219"
adult_seats_available
"2"
senior_seats_available
"1"
我知道你没有看到JSON响应,但我可以在FF firebug中看到它。我是jQuery / JSON的新手,我只想将响应打印到我的页面。提前谢谢。
答案 0 :(得分:0)
查看JSON.stringify(data)
doc我不知道您希望在哪里展示您的JSON,但是如果您只是想知道它是什么打开调试器而console.log(JSON.stringify(data));
应该这样做
答案 1 :(得分:0)
您正在使用post方法,它可能默认返回xml,json,script,text,html。所以你从post方法中获取数据。
尝试查看https://api.jquery.com/jQuery.post/
如果你想访问它,那么你可以使用JSON.stringify(data)将json显示为字符串。要从json访问数据,您可以使用点(。)表示法。
答案 2 :(得分:0)
这里有几件事要看。
首先,您要将html(即msg
)添加到#load
元素($('#load').html(msg);
),但是在您隐藏它的代码的前面($('#load').hide();
) 。所以我认为这将回答你的主要问题;即删除第$('#load').hide();
行或在$('#load').show();
行后添加$('#load').html(msg);
。
还没有看到什么?那么也许响应并不像你声称的那么严重,所以或许更方便的方法来检查分配给msg
的内容是提醒html alert(msg);
&lt; - 在你之后拨打这个电话建立你的HTML。
除此之外,使用#load
元素,您似乎正在使用它来保存加载gif,但也通过msg
的内容为其分配响应。也许您需要分离元素的使用,以便#load
元素用于加载gif,并为响应添加另一个元素。所以你的代码更像是这样。
<强> HTML 强>
<div id="load" class="hide"><img src="loading-animation.gif">...</div>
<div id="post-response" class="hide alert"><div>
其中隐藏类显示无,警告类表示响应警报的样式。
<强> JS 强>
submitHandler: function(form) {
// show the loading gif before we make the
// post data and wait for an async response
$('#load').show();
...
$.post('http://test.php', formData, function(data) {
if(data.success) {
// post-back has completed so lets hide the animation
$('#load').hide();
// your code to build html msg
// assign and show the response element
$('post-response').html(msg);
$('post-response').show();
...