2011-04-12 124 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時,返回的對象將被轉換成關聯數組。