繁体   English   中英

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

[英]How do I run PHP through jQuery without using an external file?

我有一个网页,当用户单击按钮时,我需要执行某些PHP函数。 我打算为此使用jQuery。 问题是,由于我不愿讨论的原因,我不能使用外部PHP文件。 我可以使用的所有PHP必须在此文件中的某个位置。 我发现通过jQuery执行任何类型的PHP代码的每种解决方案都需要一个外部文件。 但是必须有一种方法可以让它读取我在此文件中提供的文本,对吗? 有任何想法吗?

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

您只需要向同一页面发出一个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();
}
?>

您无法以您似乎想的方式使用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的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM