JavaScript 可以直接调用 PHP 函数吗?还是需要单独的 php 文件来调用该函数?

发布于 2024-10-06 08:16:49 字数 189 浏览 7 评论 0原文

我正在做一些基本的 Ajax 东西(不是 jquery.. 只是学习基础知识),并且我设置了一个通用结构,其中 html 调用一个 javascript 函数,该函数将数据发送到并运行特定的 php 页面。

但是如果我只需要运行一个已经在functions.php 中定义的php 函数怎么办?这可能吗?我厌倦了为每项任务创建新的 php 文件;)

I am doing some basic Ajax stuff (not jquery.. just learning the basics), and I have a general structure set up where html calls a javascript function which sends data to and runs a specific php page.

But what if I just need to run a php function that's already defined in functions.php. Is that possible at all? I'm getting tired of making new php files for every task ;)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

撧情箌佬 2024-10-13 08:16:49

你可以在 php 中定义一个类来处理这样的事情,例如:

functions.php:

class MyFunctions {
   function foo() {
      // code here
      // if you need to pass in some parameters, you can do it via jQuery and fetch the data like so (for the jQuery, see below)
      if($_GET['name'] == "john") { } // do stuff
   }

   function bar() {
      // code here
   }

   static function handleFn($fName) {
      if(method_exists(__CLASS__, $fname)) {
         echo $this->{$fname}(); die; // since AJAX, just echo the output and stop executing
      }
   }
}

if(!empty($_GET['f'])) {
   MyFunctions::handleFn($_GET['f']);
}

然后像这样进行 ajax 调用(假设是 jQuery):

$.get("/functions.php?f=func_name_to_call", {name: "John", hobby: "Programming"}, function(data) {
});

You could define a class in php to handle stuff like this, such as:

functions.php:

class MyFunctions {
   function foo() {
      // code here
      // if you need to pass in some parameters, you can do it via jQuery and fetch the data like so (for the jQuery, see below)
      if($_GET['name'] == "john") { } // do stuff
   }

   function bar() {
      // code here
   }

   static function handleFn($fName) {
      if(method_exists(__CLASS__, $fname)) {
         echo $this->{$fname}(); die; // since AJAX, just echo the output and stop executing
      }
   }
}

if(!empty($_GET['f'])) {
   MyFunctions::handleFn($_GET['f']);
}

Then do your ajax call like so (assuming jQuery):

$.get("/functions.php?f=func_name_to_call", {name: "John", hobby: "Programming"}, function(data) {
});
策马西风 2024-10-13 08:16:49

在 PHP 脚本中,每个函数都包含一个 if 语句,旨在检查 GET 变量。然后在 JS 中发送一个特定于调用该函数所需变量的 GET 变量。

In the PHP script surround each function with a if statement designed to check a GET variable. Then in the JS send a GET variable specific to the one required to call that function.

甜心 2024-10-13 08:16:49

ajax也是http请求,不能直接调用php函数

ajax is also an http request, which cannot call php functions directly

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文