Прежде всего, спасибо за проверку моей проблемы и за любую помощь, которую вы можете дать!
Хорошо, так как название говорит, что мне нужно вызвать функцию 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); } });
И атрибут action action размещен, я предполагаю?
Да, создайте отдельный PHP-файл, который вызывает эту функцию и выводит результат. Затем загрузите этот файл php с помощью запроса AJAX.
Поскольку PHP – это серверный язык, а jQuery (JavaScript) – это клиентская сторона, вы не можете напрямую вызвать функцию PHP с ней, вы можете просто загрузить файл. Однако, если файл имеет что-то вроде <?php echo($object->function()); ?>
<?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 (ie not wrapped in a function) it // may be executed // Grab the POST data from the AJAX request $obj = $_POST['obj']; echo($doSomething()); ?>
в<?php include("otherfile.php"); // Make the file available, be aware that if that file // outputs anything (ie not wrapped in a function) it // may be executed // Grab the POST data from the AJAX request $obj = $_POST['obj']; echo($doSomething()); ?>
Запрос ajax просто заставляет некоторый URL-адрес получать доступ, в котором находится php. И любыми дополнительными параметрами (даже GET) вы можете либо изменить вызываемую функцию, либо передать ее самой функции.