Jquery从PHP接收json消息
我有以下提交到iframe的jquery函数。 从PHP发回的消息是json。 我无法弄清楚如何在jquery中收到此消息,以便我可以将其显示给用户。
function IframeSubmit(){ // remove iframe if exists $('#hiddenIframe').remove(); // change target attribute on form form.attr('target', 'hiddenIframe'); // create and add iframe to page $('', { name: 'hiddenIframe', id: 'hiddenIframe', style: 'display:none' }).appendTo('body'); // on response from php file $('#hiddenIframe').load(function(){ // process received message here ... }); }
谢谢!
我有一个类似的代码:
$(document).ready(function(){ $('form#myform').submit(function(){ $("#hiddenIframe").remove(); $('').appendTo('body').attr({'id': 'hiddenIframe'}); var Frame = $('#hiddenIframe'); var newSrc = 'about:blank?nocache=' + Math.random(); //force new URL Frame.attr('src', newSrc); var iframe = $('#hiddenIframe').load(function(){ var response = iframe.contents().find('body').html(); var txt = $.parseJSON(response); $('#message').append(txt.message); if(txt.error == false){ $.ajax({ type: 'POST', url: '?myurl', dataType: 'json', data: { //some data }, success: function(data){ //some action } }); } }); }); });
iframe中的输出是:
var response = iframe.contents().find('body').html(); var txt = $.parseJSON(response);
读取响应如:txt.error或txt.message
PHP部分:
$this->message['error'] = true; $this->message['message'] = "Problem!"; echo/print json_encode($this->message);