Прежде чем кто-то попробует на мне или отметит это, я просмотрел весь Интернет, чтобы выяснить, как это сделать (включая тот же вопрос по 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, чтобы сделать эту работу, однако я совершенно не знаю, как это сделать. Я пытался найти его и т.д., но ничего не могу найти. Я знаю, как использовать 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 страница —
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 and XML (AJAX).