2011-09-22 164 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