2011-04-12 130 views
1

你好,我有一个提交表单,并发送和邮件,如果邮件被成功提交,我编码一个PHP数组,看起来像这样一个Ajax请求,JSON返回未定义

$success = array("state" => "Email Sent");

我然后在我的ajax请求中检查data的状态,以查看state是否与“Email Sent”匹配,但是当我alert(data)未定义时,我做错了什么?以下是我的javascript,

$.ajax({ 
        url: "<?php echo base_url(); ?>home/callback", 
        data: $("#callback").serialize(), 
        type: "POST", 
        dataType: "JSON", 
        success: function(data){ 
         $("#fancybox-content div").html(data); 
         alert(data.state); 
        } 
       }); 
+0

你输出前是否有'json_encode($ success)'? – kjy112 2011-04-12 11:33:10

回答

0

尝试获取'fancybox-content'div的html值。 $('#fancybox-content')。html();

0

如果你的警报是失败的,那么你确定你的json是有效的吗?你可以将它粘贴到你的问题中。您可以在线在JsonLint在线验证。

0

你如何返回$succes数组?
你应该echo的方式,将它保存了磁盘阵列的格式,是可以理解的JavaScript(不print_rvar_dump):

echo json_decode($success); 

,将返回一个JSON字符串代表你的php数组,js的自动转换变成一个物体。
希望这会有所帮助。

0

使用

json_decode($success, true); 

为TRUE时,返回的对象将被转换成关联数组。