Как запустить PHP-код, когда пользователь нажимает на ссылку?

Я хочу, чтобы страница запускала некоторый PHP-код, когда пользователь нажимает на ссылку, не перенаправляя ее. Возможно ли это с

<a href=""></a> 

или с событием onclick javascript?

Да, вам нужно иметь функцию javascript, вызванную onclick, которая загружает 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-back, если вам нужно использовать значения формы (используйте метод $ .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 } 

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

Вы не можете запустить PHP, когда пользователь нажимает ссылку, не выходя из страницы, если вы не используете AJAX. PHP – это серверный скриптовый язык, то есть второй, который браузер видит на странице, в нем нет PHP.

В отличие от Javascript, PHP запускается полностью на сервере, и браузер не знает, как интерпретировать его, если он укусил их сзади. Единственный способ вызвать PHP-код – сделать запрос страницы, обновив страницу или используя javascript, чтобы получить страницу.

В решении AJAX в основном на странице используется javascript для отправки запроса страницы на другую страницу вашего домена. Затем Javascript получает все, что вы решите echo в ответе, и он может анализировать его и делать то, что он хочет оттуда. Когда вы создаете ответ, вы также можете делать любые бэкэнд-файлы, такие как обновление баз данных.

Я знаю, что этот пост старый, но я просто хотел добавить свой ответ!

Вы сказали, чтобы вывести пользователя из системы БЕЗ управления … этот метод перенаправляется, но он возвращает пользователя на страницу, на которой они были! вот моя реализация:

 // 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!

Счастливое кодирование!

Alex

Ну, вы сказали, не перенаправляя. Ну его код 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, поскольку все предлагают в своих сообщениях. Альтернативой является использование IFrame, как показано ниже:

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

Теперь вы получите результат в IFrame (вы можете разместить IFrame везде, где вам нужно на странице или событии, скрыть его и результат от скрипта).

Надежды на решение без Ajax это лучше.

либо отправить пользователя на другую страницу, которая делает это

 <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