如何在不使用外部文件的情况下通过jQuery运行PHP?

时间:2015-08-18 18:26:40

标签: php jquery

我有一个网页,我需要在用户点击按钮时执行某些PHP功能。我打算为此使用jQuery。问题是,由于我不会进入的原因,我不能使用外部PHP文件。我可以使用的所有PHP都必须在这个文件中。我发现通过jQuery执行任何类型的PHP代码的每个解决方案都需要一个外部文件。但是必须有一种方法可以让它读出我在这个文件中给出的文本,对吗?有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您可以使用JQuery的jjax函数(例如$ .post)向页面发送GET或POST参数,以指定请求来自代码。然后只需检查该参数,如果存在,执行您想要的操作并输出其他内容而不是正常的。

答案 1 :(得分:0)

您只需要向同一页面发出ajax请求

<script>
   $.ajax({
      type: "POST",
      url: "foobar.php",
      data: {foo:'bar'},
      dataType: 'text',
      success:function(data){
         alert(data);
      }
    });
 </script>

<?php
if($_REQUEST["foo"] == "bar") {
    echo "i've been ajaxed";
    call_my_func();
}
?>

答案 2 :(得分:0)

您无法以您想象的方式使用JavaScript调用PHP函数。

当您加载PHP页面时,服务器处理PHP文件中的代码并仅将该代码的结果返回给浏览器。浏览器完全不知道PHP文件中的实际代码。

另一方面,JavaScript完全在客户端运行,即在浏览器中运行。因此,在浏览器专门向服务器发送请求之前,服务器不会意识到浏览器中发生的任何事情。

如果您想要一个按钮点击来触发PHP功能,您将不得不向目标PHP文件(无论是另一个文件,还是同一个文件)发出请求。

一种方法是将表单中的按钮提交到同一页面,页面在生成内容时查找表单数据:

<form method="post">
  <input type="submit" name="myButton" value="Click me" />
</form>

通过省略action属性,表单将提交到同一页面。

在页面顶部的PHP部分中,您将有类似的内容来检查按钮是否已被点击:

<?php
    if (isset($_POST["myButton"])) {
        myFunction();
    }
?>

这当然会导致页面重新加载。如果你想避免这种情况,请查看涵盖AJAX的答案。