我正在寻找一个简单的解决方案来仅在单击a-tag时调用PHP 函数。
PHP:
function removeday() { ... }
HTML:
<a href="" onclick="removeday()" class="deletebtn">Delete</a>
更新: html 和 PHP 代码在同一个 PHP 文件中
我正在寻找一个简单的解决方案来仅在单击a-tag时调用PHP 函数。
PHP:
function removeday() { ... }
HTML:
<a href="" onclick="removeday()" class="deletebtn">Delete</a>
更新: html 和 PHP 代码在同一个 PHP 文件中
首先,要了解您同时使用三种语言:
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/
在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>
在你的 ajax.php 中,
if($_POST['action'] == 'call_this') {
// call removeday() here
}
您将必须通过AJAX执行此操作。我强烈建议您使用 jQuery 来使这对您更容易....
$("#idOfElement").on('click', function(){
$.ajax({
url: 'pathToPhpFile.php',
dataType: 'json',
success: function(data){
//data returned from php
}
});
)};
如果这是您的按钮,则可以使用相当简单的 php 完成
<input type="submit" name="submit>
这是你的 php 代码
if(isset($_POST["submit"])) { php code here }
当提交 get 发布时调用代码 get,这在单击按钮时发生。
无需重新加载页面的解决方案
<?php
function removeday() { echo 'Day removed'; }
if (isset($_GET['remove'])) { return removeday(); }
?>
<!DOCTYPE html><html><title>Days</title><body>
<a href="" onclick="removeday(event)" class="deletebtn">Delete</a>
<script>
async function removeday(e) {
e.preventDefault();
document.body.innerHTML+= '<br>'+ await(await fetch('?remove=1')).text();
}
</script>
</body></html>