Использование JQuery Ajax для вызова функции php - PullRequest
3 голосов
/ 16 мая 2010

Прежде всего, спасибо за проверку моей проблемы и за любую помощь, которую вы можете оказать!

Хорошо, так как в заголовке говорится, что мне нужно вызвать функцию php с моей индексной страницы, которая добавляет новую запись в мою базу данных в качестве голоса, используя JQuery Ajax. Эта функция вернет одно целое число, которое затем будет напечатано внутри кнопки формы, из которой она была вызвана.

У кого-нибудь есть идеи, как мне это сделать? Любое руководство приветствуется!

Edit:

So if I'm using a template object I can just call the
function using ajax and it will return the output? 
What would I use as the URL? index.php?  

Such as...
function DoVote() {
    $.ajax({
    type:'POST',
    url: 'index.php',
    success: function(data) {
    $('#voteText').html(data);
 }
});

А атрибут действия формы опубликован?

Ответы [ 2 ]

3 голосов
/ 16 мая 2010

Да, создайте отдельный PHP-файл, который вызывает эту функцию и выводит вывод. Затем загрузите этот php-файл с помощью запроса AJAX.

Поскольку PHP является языком на стороне сервера, а jQuery (JavaScript) - на стороне клиента, вы не можете напрямую вызывать с ним функцию PHP, самое большее, что вы можете сделать, это загрузить файл. Однако, если файл имеет что-то вроде <?php echo($object->function()); ?>, вы можете загрузить файл, по сути вызывая функцию.

Я не уверен, что (ваше дополнение) правильно.

В произвольном файле у вас есть функция PHP:

<?php
    // Called "otherfile.php"

    // Function you're trying to call
    function doSomething($obj)
    {
        $ret = $obj + 5;

        return($ret);
    }
?>

И у вас есть файл (назовите его ajaxcall.php), который вы загрузите с этим вызовом AJAX.

<?php
    include("otherfile.php");   // Make the file available, be aware that if that file 
                                // outputs anything (i.e. not wrapped in a function) it
                                // may be executed
    // Grab the POST data from the AJAX request
    $obj = $_POST['obj']; 

    echo($doSomething());
?>
0 голосов
/ 16 мая 2010

Запрос ajax просто заставляет некоторый URL-адрес быть доступным, который запускает php, расположенный там. И с помощью любых дополнительных параметров (даже GET) вы можете либо изменить вызываемую функцию, либо передать их самой функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...