Intereting Posts
Код для отправки электронной почты не работает Как вставлять изображения в html-адрес электронной почты Как показать php-файлы как обычный текст в Apache Разница между двумя командами выборки товаров для покупок в Magento индивидуальное значение в цикле php показывает на час раньше Являются ли mysql_real_escape_string () и mysql_escape_string () достаточными для безопасности приложения? Почему моя страница по-прежнему загружается, хотя индикатор выполнения показывает, что загрузка уже завершена? MVC Design. Сколько контроллеров может / должно / должно быть иметь в проекте веб-приложения CodeIgniter MVC? Динамические Facebook и метатеги в WordPress PHP Как защитить свой сайт от локального включения файлов и внедрения SQL в PHP? codeigniter – контроллер загружает несколько видов Понимание требуемого класса и наличие Преобразование массива пар ключ-значение в ассоциативный массив WooCommerce – заполнение полей имени и фамилии в профиле пользователя – ошибка?

Как вызвать php-скрипт / функцию при нажатии кнопки html

Прежде чем кто-то пойдет на меня или отметит это, я просмотрел по всему Интернету, чтобы узнать, как это сделать (включая тот же вопрос о 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; ?> 

Заметки

  1. Включите jquery-библиотеку для использования jquery Ajax
  2. Храните файл demo_test.php в той же папке, где находится ваш файл javascript.

Измените 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).