2014-09-03 118 views
0

这可能是一件很简单的事情,而且我看到有更多的人遇到同样的问题。但提供的解决方案似乎并不奏效。通过AJAX的PHP请求失败

所以,我想通过AJAX执行.php文件。为了测试php文件(consolefunctions)非常小。

<?php 
if(isset($_POST['action'])) { 
<script>console.log('consolefunctions.php called.');</script> 
} 
?> 

现在为javascript/ajax部分。

$(".startConsole").click(function(){ 
    var consoleID = $(this).attr("value"); 
    $.ajax({ url: 'include/consolefunctions.php', 
     type: 'post', 
     data: {action: 'dosomething'},  
     success: function(output) { 
      //alert("meeh"); 
     } 
    }); 
}); 

某处,不知何故有一个问题,因为来自PHP文件的消息从不显示。我已经从php文件中测试了该位置,这是有效的。

+1

为什么要从PHP“显示”消息?你的JavaScript没有做任何回应。 – Quentin 2014-09-03 12:57:16

+1

即使PHP代码无效。 – 2014-09-03 13:01:06

+0

您的PHP不会运行其中的JavaScript - 它甚至不会回应。你的PHP应该会抛出一个错误。 – 2014-09-03 13:01:15

回答

1

首先,PHP代码是不正确的,你应该添加回声

<?php 
if(isset($_POST['action'])) { 
echo"<script>console.log('consolefunctions.php called.');</script>"; 
} 
?> 

但问题是,当你这个代码发送给JS,你会得到它作为一个字符串在你的可变输出,而不是作为ajax调用后执行的代码,因此最好的方法是仅回显要在控制台上显示的消息,然后一旦收到此消息,您可以调用console.log函数

<?php 
if(isset($_POST['action'])) { 
echo"consolefunctions.php called"; 
} 
?> 

在成功功能:

console.log(output); 
+0

好的,有时候我觉得自己像个驴子。这是其中的一个时刻,非常明显。谢谢你的帮助。 – Serellyn 2014-09-03 13:12:39