使用onClick执行PHP函数

Mik*_*ike 86 javascript php ajax onclick

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

PHP:

function removeday() { ... }
Run Code Online (Sandbox Code Playgroud)

HTML:

<a href="" onclick="removeday()" class="deletebtn">Delete</a>
Run Code Online (Sandbox Code Playgroud)

更新: html和PHP代码在同一个PHP文件中

Mic*_*ins 132

首先,要了解您有三种语言协同工作.

  • 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>
Run Code Online (Sandbox Code Playgroud)

因为PHP只响应请求(通过$ _REQUEST获取GET,POST,PUT,PATCH和DELETE),所以即使它们在同一个文件中,也必须运行PHP函数.这为您提供了一定程度的安全性,"我是否应该为此用户运行此脚本?".

如果您不想刷新页面,可以通过名为Asynchronous JavaScript and XML(AJAX)的方法向PHP发出请求,而无需刷新.

这是你可以在YouTube上查找的内容.只需搜索"jquery ajax"

我推荐Laravel给任何新人开始吧:http://laravel.com/

  • 伙计,非常感谢你,你的回答不仅帮助我解决了这个疑问,而且还让我更好地理解了php!再次感谢你! (4认同)
  • 请注意,我假设你对PHP很新,我想推荐http://laravel.com/作为框架.就个人而言,我会喜欢跳过整个'学习通用php'并直接进入一个强大的框架.这也是我现在使用的那个. (3认同)
  • `如果你不想刷新页面,你可以通过一种叫做异步 JavaScript 和 XML (AJAX) 的方法向 PHP 发出请求而不刷新。` 他确实在问题中包含了 `onclick`,所以很清楚目标是在不刷新的情况下执行操作。~~~ (3认同)
  • 谢谢你,因为你的提及,我将开始专注于 Laravel。 (2认同)

dev*_*evo 35

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

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

      });
 }
Run Code Online (Sandbox Code Playgroud)

然后从html调用,

<a href="" onclick="myAjax()" class="deletebtn">Delete</a>
Run Code Online (Sandbox Code Playgroud)

在你的ajax.php中,

if($_POST['action'] == 'call_this') {
  // call removeday() here
}
Run Code Online (Sandbox Code Playgroud)


A.O*_*.O. 12

你必须通过AJAX这样做.我很高兴推荐你使用jQuery让你更容易....

$("#idOfElement").on('click', function(){

    $.ajax({
       url: 'pathToPhpFile.php',
       dataType: 'json',
       success: function(data){
            //data returned from php
       }
    });
)};
Run Code Online (Sandbox Code Playgroud)

http://api.jquery.com/jQuery.ajax/

  • 由于@Barmar的解释,它并不像那样.您需要将php放在单独的文件中,然后在AJAX请求中引用该文件. (3认同)
  • @JoeDoe 你不能,把函数放在一个外部文件中 (2认同)

小智 11

如果这是你的按钮,它可以用相当简单的PHP完成

<input type="submit" name="submit>
Run Code Online (Sandbox Code Playgroud)

这是你的PHP代码

if(isset($_POST["submit"])) { php code here }
Run Code Online (Sandbox Code Playgroud)

当提交get发布时,在单击按钮时发生代码获取.

  • -1因为那不是a-tag.另外,你需要<form stuff. (11认同)