Прежде чем кто-то пойдет на меня или отметит это, я просмотрел по всему Интернету, чтобы узнать, как это сделать (включая тот же вопрос о stackoverflow). Я новичок, и мне очень сложно изучать новые концепции, поэтому, пожалуйста, будьте спокойны.
То, что я хочу сделать, это вызвать скрипт / функцию php при нажатии кнопки. У меня это работает в WAMP, если это помогает. Вот мой код:
<?php include 'the_script.php'; ?> <button type="button" onclick="the_function()">Click Me</button>
the_script.php имеет это в нем:
the_function() { echo "You win"; }
Почему это не работает? Я слышал, что кнопка является клиентской стороной и т. Д., А PHP – серверной, что означает, что вы не можете связать эти два. Я знаю, что вы должны использовать AJAX для выполнения этой работы, однако я совершенно не знаю, как это сделать. Я пробовал использовать его в Google и т. Д., Но ничего не могу найти. Я знаю, как использовать AJAX и вызывать события с ним, однако я до сих пор не знаю, как заставить его вызывать скрипт PHP.
Можете ли вы, пожалуйста, сделать свои ответы максимально ясными и простыми, я новичок в этом
Спасибо за помощь 🙂
РЕДАКТИРОВАТЬ ***
По какой-то причине, где бы я ни пошел, каждый код отличается. То, как меня учили, AJAX выглядит совершенно по-другому. Можете ли вы написать это так, чтобы я мог понять? Спасибо, вот пример:
var request; if (window.XMLHttpRequest) { request = new XMLHttpRequest(); } else { request = new ActiveXObject("Microsoft.XMLHTTP"); } request.open('GET', 'file.php', true); request.onreadystatechange = function() { if (request.readyState===4 && request.status===200) { do stuff } } request.send();
Просто попробуйте следующее:
<button type="button">Click Me</button> <p></p> <script type="text/javascript"> $(document).ready(function(){ $("button").click(function(){ $.ajax({ type: 'POST', url: 'script.php', success: function(data) { alert(data); $("p").text(data); } }); }); }); </script>
В script.php
<?php echo "You win"; ?>
Конечно, AJAX – это решение,
Для выполнения запроса AJAX (для удобства мы можем использовать библиотеку jQuery).
Шаг 1.
Включите библиотеку jQuery на свою веб-страницу
а. вы можете загрузить библиотеку jQuery с jquery.com и сохранить ее локально.
б. или просто вставьте следующий код,
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
Шаг 2.
Вызов функции javascript при нажатии кнопки
<button type="button" onclick="foo()">Click Me</button>
Шаг 3.
и, наконец, функция
function foo () { $.ajax({ url:"test.php", //the page containing php script type: "POST", //request type success:function(result){ alert(result); } }); }
он сделает запрос AJAX к test.php, когда вы нажимаете кнопку и предупреждаете ответ.
Например, ваш код в test.php есть,
<?php echo 'hello'; ?>
то он будет предупреждать «привет», когда вы нажимаете кнопку.
Вы также можете использовать
$(document).ready(function() { //some even that will run ajax request - for example click on a button var uname = $('#username').val(); $.ajax({ type: 'POST', url: 'func.php', //this should be url to your PHP file dataType: 'html', data: {func: 'toptable', user_id: uname}, beforeSend: function() { $('#right').html('checking'); }, complete: function() {}, success: function(html) { $('#right').html(html); } }); }); And your func.php: function toptable() { echo 'something happens in here'; }
Надеюсь, это поможет кому-то
Используйте jQuery
. На странице HTML –
<button type="button">Click Me</button> <script> $(document).ready(function() { $("button").click(function(){ $.ajax({ url:"php_page.php", //the page containing php script type: "POST", //request type success:function(result){ alert(result); } }); }); }) </script>
Php page –
echo "Hello";
the_function() { $.ajax({url:"demo_test.php",success:function(result){ alert(result); // will alert 1 }}); }
// demo_test.php
<?php echo 1; ?>
Заметки
Измените the_script.php следующим образом.
<script> the_function() { alert("You win"); } </script>
First understand that you have three languages working together.
PHP: выполняется только сервером и отвечает на запросы, такие как щелчок по ссылке (GET) или отправка формы (POST). HTML и Javascript: работает только в браузере кого-то (кроме NodeJS) Я предполагаю, что ваш файл выглядит примерно так:
<?php function the_function() { echo 'I just ran a php function'; } if (isset($_GET['hello'])) { the_function(); } ?> <html> <a href='the_script.php?hello=true'>Run PHP Function</a> </html>
Поскольку PHP отвечает только на запросы (GET, POST, PUT, PATCH и DELETE через $ _REQUEST), вам нужно запустить php-функцию, даже если они находятся в одном файле. Это дает вам уровень безопасности: «Должен ли я запускать этот скрипт для этого пользователя или нет?».
Если вы не хотите обновлять страницу, вы можете сделать запрос на PHP без обновления с помощью метода Asynchronous Javascript и XML (AJAX).