当用户点击链接时,如何运行PHP代码?

我想要一个页面运行一些PHP代码,当用户点击一个链接,而不redirect。 这是可能的

<a href=""></a> 

或与JavaScript的onclick事件?

是的,你需要有一个JavaScript函数触发一个页面的AJAX加载,然后返回false,这样他们将不会在浏览器中redirect。 你可以在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()方法),您也可以做一个回传。

正如其他人所build议的,使用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 } 

http://docs.jquery.com/Ajax/jQuery.ajax

除非您使用AJAX,否则当用户单击链接而不离开页面时,您无法运行PHP。 PHP是一种服务器端脚本语言,也就是浏览器看到页面的第二种语言,它里面没有PHP。

与JavaScript不同的是,PHP在服务器上完全运行,浏览器不知道如何解释它,如果它位于后面。 调用PHP代码的唯一方法是通过刷新页面或使用JavaScript获取页面来创build页面请求。

在AJAX解决scheme中,页面基本上使用JavaScript将页面请求发送到您域中的另一个页面。 然后,Javascript将得到你决定在echo中回应的任何内容,并且可以parsing它并从那里做它想做的事情。 当你创build响应时,你也可以做任何后端的东西,比如更新数据库。

我知道这个post是旧的,但我只是想添加我的答案!

你说没有指示就login一个用户…这个方法做redirect,但是它将用户返回到他们所在的页面! 这是我的实现:

 // 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获取文件名的代码不是bugcertificate。 例如,如果查询string中包含未转义的“/”,则会失败。

不过,有很多脚本从URL获取文件名!

快乐编码!

亚历克斯

那么你说没有redirect。 那么它的一个JavaScript代码:

 <a href="JavaScript:void(0);" onclick="function()">Whatever!</a> <script type="text/javascript"> function confirm_delete() { var delete_confirmed=confirm("Are you sure you want to delete this file?"); if (delete_confirmed==true) { // the php code :) can't expose mine ^_^ } else { // this one returns the user if he/she clicks no :) document.location.href = 'whatever.php'; } } </script> 

给它一个尝试:)希望你喜欢它

如果你还没有安装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> 

AJAX的唯一更好的方法就是每个人都在他们的post中build议。 另一种方法是使用如下的IFrame:

 <iframe name="f1" id="f1"> </iframe> <a href='yourpage.php' target='f1'>Click </a> 

现在,您将在IFrame中获得输出(您可以将iframe放置在页面中的任何位置,或者事件将其隐藏,并从脚本中将结果隐藏起来)。

希望非Ajax解决scheme更好。

要么发送用户到另一个页面,这样做

 <a href="exec.php">Execute PHP</a> 

或者用ajax做

 <script type="text/javascript"> // <![CDATA[ document.getElementById('link').onclick = function() { // call script via ajax... return false; } // ]]> </script> ... <a href="#" id="link">Execute PHP</a> 

这应该也是一样

 <a href="#" onclick="callFunction();">Submit</a> <script type="text/javascript"> function callFunction() { <?php require("functions.php"); ?> } </script> 

谢谢,

cowtipper