Подтвердить что ты не робот

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

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

<a href=""></a>

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

4b9b3361

Ответ 1

Да, вам нужно иметь функцию 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()).

Ответ 2

Как и другие, вы можете использовать JavaScript для вызова AJAX.

<a href="#" onclick="myJsFunction()">whatever</a>

<script>
function myJsFunction() {
     // use ajax to make a call to your PHP скрипт
     // 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

Ответ 3

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

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

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

Ответ 4

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

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

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

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

Алекс

Ответ 5

Ну, вы сказали, не перенаправляя. Ну его код 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>

попробуйте:) надеюсь, вам понравится

Ответ 6

Если вы еще не установили 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>

Ответ 7

Единственный лучший способ - это AJAX, поскольку все предлагают в своих сообщениях. Альтернативой является использование IFrame, как показано ниже:

<iframe name="f1" id="f1"> </iframe>

<a href='yourpage.php' target='f1'>Click </a>

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

Надеюсь, что для решения без Ajax это лучше.

Ответ 8

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

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

Ответ 9

Это также должно работать

<a href="#" onclick="callFunction();">Submit</a>

<script type="text/javascript">

function callFunction()
{
  <?php require("functions.php");  ?>
}
</script>

Спасибо,

cowtipper