我想让一个页面在用户点击链接时运行一些 PHP 代码,而不是重定向它们。这可能与
<a href=""></a>
还是使用 javascript onclick 事件?
我想让一个页面在用户点击链接时运行一些 PHP 代码,而不是重定向它们。这可能与
<a href=""></a>
还是使用 javascript onclick 事件?
是的,您需要有一个由 onclick 触发的 javascript 函数,该函数执行页面的 AJAX 加载,然后返回 false,这样它们就不会在浏览器中被重定向。如果您的项目可以接受,您可以在 jQuery 中使用以下内容:
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function doSomething() {
$.get("somepage.php");
return false;
}
</script>
<a href="#" onclick="doSomething();">Click Me!</a>
如果您需要使用表单值(使用 $.post() 方法),您也可以进行回发。
正如其他人所建议的那样,使用 JavaScript 进行 AJAX 调用。
<a href="#" onclick="myJsFunction()">whatever</a>
<script>
function myJsFunction() {
// use ajax to make a call to your PHP script
// for more examples, using Jquery. see the link below
return false; // this is so the browser doesn't follow the link
}
如果你还没有安装jquery(因为你只是一个初学者什么的),使用这段代码:
<a href="#" onclick="thisfunction()">link</a>
<script type="text/javascript">
function thisfunction(){
var x = new XMLHttpRequest();
x.open("GET","function.php",true);
x.send();
return false;
}
</script>
我知道这篇文章很旧,但我只是想添加我的答案!
你说在没有指导的情况下注销用户......这个方法确实重定向但它会将用户返回到他们所在的页面!这是我的实现:
// every page with logout button
<?php
// get the full url of current page
$page = $_SERVER['PHP_SELF'];
// find position of the last '/'
$file_name_begin_pos = strripos($page, "/");
// get substring from position to end
$file_name = substr($page, ++$fileNamePos);
}
?>
// the logout link in your html
<a href="logout.php?redirect_to=<?=$file_name?>">Log Out</a>
// logout.php page
<?php
session_start();
$_SESSION = array();
session_destroy();
$page = "index.php";
if(isset($_GET["redirect_to"])){
$file = $_GET["redirect_to"];
if ($file == "user.php"){
// if redirect to is a restricted page, redirect to index
$file = "index.php";
}
}
header("Location: $file");
?>
我们走了!
从完整 url 获取文件名的代码不是错误证明。例如,如果查询字符串中包含未转义的“/”,它将失败。
但是有很多脚本可以从 url 获取文件名!
快乐编码!
亚历克斯
除非您使用 AJAX,否则当用户单击链接而不离开页面时,您无法运行 PHP。PHP 是一种服务器端脚本语言,意思是浏览器第二次看到页面,里面没有 PHP。
与 Javascript 不同,PHP 完全在服务器上运行,如果它在后端咬住它们,浏览器将不知道如何解释它。调用 PHP 代码的唯一方法是通过刷新页面或使用 javascript 获取页面来发出页面请求。
在 AJAX 解决方案中,基本上页面使用 javascript 将页面请求发送到您域中的另一个页面。Javascript 然后echo
在响应中获取您决定的任何内容,它可以解析它并从那里做它想做的事情。创建响应时,您还可以执行任何后端操作,例如更新数据库。