2012-01-02 76 views
0

嗨我試圖檢索響應後,通過使用jQuery的ajax函數從JavaScript到PHP的一些變量。jquery ajax變量到php

這是jQuery的Ajax代碼:

$(document).ready(function() { 

    $("#invoice_submit_button").click(function() { 

     var action = $("invoice_form").attr('action'); 

     $.ajax({ 
      type: "POST", 
      url: action, 
      data: $('form#invoice_form').serialize(), 
      dataType: "json", 
      success: function(response) { 
       if (response.error == 'none') { 
        $("#ajax_response").html("<p>" + response.msg + "</p>"); 
       } 
       else { 

        $("#ajax_response").html("<p>" + response.msg + "</p>"); 

       } 
      } 
     }); 

     return false; 
    }); 
}); 

(OFC會有取決於何時得到它的工作response.error不同的輸出,這只是一個例子)

這是PHP代碼:

$msg="Bla bla"; 
$error="form_err"; 
$result = array('msg' => $msg, 'error' => $error); 
$result_json = json_encode($result); 
echo $result_json; 

調試使用Firebug表明,不是與發佈部分問題,但它看起來像腳本無法從PHP的響應(並將其打印到圓盾t div)。 我錯過了一些東西,我對其他腳本使用相同的方法,它一直工作。 謝謝

+2

'action'是空的,因爲jQuery找不到'invoice_form'元素。 '$(「invoice_form」)。attr('action');'應該是'$(「#invoice_form」)。attr('action');'。你確定該請求被髮送到正確的URL嗎? – 2012-01-02 16:28:02

+0

太好了,謝謝。我失去了從舊腳本粘貼的#副本。 編輯:我不能代表或任何意見? – g0dl3ss 2012-01-02 16:48:22

+0

我提供了我的評論作爲答案,以便您可以接受它。 – 2012-01-02 16:51:34

回答

0

action是空的,因爲jQuery找不到元素invoice_form

$("invoice_form").attr('action');應該是$("#invoice_form").attr('action');

確定請求已發送到正確的URL嗎?

1

您是否嘗試在PHP腳本中將內容類型設置爲application/json?

header('Content-type: application/json'); 
+0

可能沒有任何區別。 – 2012-01-02 16:34:05