执行 PHP 函数,单击

2022-08-30 05:42:17

我正在寻找一个简单的解决方案,仅在单击a-tag时才调用PHP函数

菲律宾比索:

function removeday() { ... }

网页:

<a href="" onclick="removeday()" class="deletebtn">Delete</a>

更新:html 和 PHP 代码位于同一 PHP 文件中


答案 1

首先,了解您有三种语言一起工作:

  • PHP:它仅由服务器运行并响应诸如单击链接(GET)或提交表单(POST)之类的请求。

  • HTML和JavaScript:它只能在某人的浏览器中运行(不包括NodeJS)。

我假设你的文件看起来像这样:

<!DOCTYPE HTML>
<html>
<?php
  function runMyFunction() {
    echo 'I just ran a php function';
  }

  if (isset($_GET['hello'])) {
    runMyFunction();
  }
?>

Hello there!
<a href='index.php?hello=true'>Run PHP Function</a>
</html>

因为 PHP 只响应请求(GET、POST、PUT、PATCH 和 DELETE 通过 $_REQUEST),所以这就是你必须运行 PHP 函数的方式,即使它们位于同一文件中。这为您提供了一个安全级别,“我是否应为此用户运行此脚本?

如果您不想刷新页面,可以通过称为异步 JavaScript 和 XML (AJAX) 的方法向 PHP 发出请求,而无需刷新。

不过,这是你可以在YouTube上查找的东西。只需搜索“jquery ajax”

我向任何刚开始的人推荐Laravel:http://laravel.com/


答案 2

在javascript中,创建一个ajax函数,

function myAjax() {
      $.ajax({
           type: "POST",
           url: 'your_url/ajax.php',
           data:{action:'call_this'},
           success:function(html) {
             alert(html);
           }

      });
 }

然后从 html 调用,

<a href="" onclick="myAjax()" class="deletebtn">Delete</a>

在你的阿贾克斯.php,

if($_POST['action'] == 'call_this') {
  // call removeday() here
}