2011-09-22 158 views
1

我有一個jquery ajax的職位,因爲某些原因無法正常工作:jquery ajax無法正常工作?

<script> 
var callback = function(data) { 
    if (data['order_id']) { 
     $.ajax({ 
      type: 'POST', 
      url: '<?php echo $_SERVER['PHP_SELF']; ?>', 
      data: { myid: 123456 }, 
      success: function(data) { 
       alert("Transaction Completed!"); 
      } 
     }); 
    }} 
</script> 
<?php if ($_POST['myid']) { echo $_POST['myid']; } ?> 

的「回調」功能工作正常(我測試了),只是它停靠在ajax post ,我不能看我的echo

關於我在做什麼錯誤的任何想法?

感謝

編輯: 我編輯的腳本位在哪裏阿賈克斯成功發佈了點,但我不能讓PHP來呼應什麼

+0

除了語法錯誤之外,你偶然嘗試跨域的ajax調用嗎? –

+0

@Martin Jespersen:他在調用'$ _SERVER [PHP_SELF]',所以我不認爲這是問題。 @Patrioticcow:沒有任何錯誤可以在控制檯中看到嗎? – GNi33

+0

完全沒有錯誤。如果我嘗試看到'XMLHttpRequest,textStatus,errorThrown',他們告訴我什麼都沒有 – Patrioticcow

回答

2

如果AJAX - 呼叫現在成功,您不能僅使用PHP迴應任何內容。數據被髮送到客戶端,但PHP在服務器上被解釋。你不再發送HTTP-Request(這幾乎是AJAX-Call的要點),所以PHP在這一點上不會做任何事情。

您必須使用JavaScript將新內容添加到DOM。嘗試一下,看看你的信息是否顯示在你的網頁上。我將其追加到身體,因爲我不知道您的標記,你返回的數據看起來的樣子:

 $.ajax({ 
       type: 'POST', 
       url: '<?php echo $_SERVER['PHP_SELF']; ?>', 
       data: { myid: 123456 }, 
       success: function(data) { 
        alert("Transaction Completed!"); 
        $('body').prepend('<p>Successful AJAX - Call</p>'); 
       } 
      }); 

然後你就可以在你的data -variable看看有console.log(data),訪問返回的數據,並修改通過JavaScript的DOM。

+0

我得到'成功的AJAX - 呼籲'在我的網頁 – Patrioticcow

+0

你試過我的代碼?只要嘗試按照我向您展示的方式向返回的數據變量中包含的DOM添加內容即可。如果它顯示在頁面上,那麼一切都應該沒問題。 – GNi33

+0

由於某種原因'data'返回了我的所有頁面內容,有線。我需要做一些帖子的王者,因爲我需要在數據庫中插入一些值 – Patrioticcow

0

OK,一開始。

writeback("Transaction Completed!"; 

解決它:

writeback("Transaction Completed!"); 
+0

我解決了這個問題,但那不是問題 – Patrioticcow

0
  1. 你有後123456

    data: { myid: 123456, }, 
    
  2. 你缺少一個右}到您的回調函數尾隨逗號

+0

我改變了這些事情,阿賈斯正在迴歸成功。但我不能看到PHP回聲 – Patrioticcow