Вызов функции php из javaScript
Мне нужно обрабатывать нажатие кнопок через ajax и по нажатию одной из них вызывать функцию php и передавать в нее параметры, потом из нее так же вызывать функцию js с параметрами тоже. как это можно сделать? Ниже я описал как бы я хотел сделать, ооочень примитивно написал. Если не сложно, то основываясь на этом примере можете объяснить как это можно реализовать? Легкий пример кода:
js:
$('#button_1').on('click', function(){
$.ajax({
url:'Index.php',
success:function(data){
тут вызов функции code php с некоторыми параметрами которые она принимает
}
});
})
function script(a, b, c){
a = b + c;
}
php:
function code($a, $b, $c){
$a += $b;
вызов функции script с некоторыми параметрами
}
Кнопка:
<form method="post" action="">
<ul class="buttons_menu">
<li>Локации</li>
<li ><span ><button id="location_button_1" name="location_button_1">Главные ворота</button></span><em>3 сек.</em></li>
<li><span><button id="location_button_2" name="location_button_2" >Торговый квартал</button></span><em>2 сек</em></li>
<li><span><button id="location_button_3" name="location_button_3" >Замок</button></span><em>5 сек</em></li>
<li><span><button id="location_button_4" name="location_button_4" >Гильдия</button></span><em>4 сек</em></li>
</ul>
</form>
Ответы (2 шт):
Вызвать php код из js невозможно. Вам нужно написать обработчик на сервере, делать ajax запрос и при успешном выполнении возвращать нужные данные в js функцию.
Кирилл, приветствую!
Вам необходимо в ajax запросе передать необходимые параметры PHP скрипту, в нём произвести необходимые манипуляции и вернуть данные, например в json массиве.
$.ajax({
url:'Index.php',
method: 'get', /* Метод передачи (post или get) */
dataType: 'json', /* Тип данных в ответе (xml, json, script, html). */
data: {a: 10, b: 20},
success:function(data){
Здесь вы работаете уже с полученными из скрипта данными
alert(data.a);
alert(data.b);
alert(data.ab);
}
});
success:function(data) -> переменная data - это то, что вы вернете в php скрипте в json
Index.php выглядит примерно так:
if($_GET['a'] and $_GET['b']){
$data['ab'] = $_GET['a'] + $_GET['b'];
$data['a'] = $_GET['a'];
$data['b'] = $_GET['b'];
}
$json = json_encode($data);
echo $json;
exit();