После того, как клиент нажимает кнопку - должна выполняться функция на стороне сервера, и в соответствии с результатом выполняются различные функции на стороне клиента.
Для этого я использовал AJAX и написал эту функцию:
function invoke_php(file_name, parameters){
parameters = typeof parameters !== 'undefined' ? parameters : '';
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
switch (xmlhttp.responseText) {
case "func1":
func1();
break;
case "func2":
func2();
break;
default:
default_func();
}
}
};
xmlhttp.open("POST", file_name+"?"+parameters, true);
xmlhttp.send();
}
Функциональность на стороне сервера выполняется в отдельном файле php, который возвращает имя запускаемой функции. функция invoke_php использует переключатель для текста ответа и выполняет подходящую клиентскую функцию...
Похоже, что есть лучший способ сделать это... Любое предложение по улучшению будет оценено.. :)
Я бы рекомендовал вам:
Вот как выглядит код:
function invoke_php(url, callbacks){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200 && callbacks) {
var fn = callbacks[xmlhttp.responseText] || callbacks._default || function () {};
fn();
}
};
xmlhttp.open("POST", url, true);
xmlhttp.send();
}
invoke_php(
'test.php?myparams=true',
{
_default: function () {},
func1: function () {
console.log('func1');
},
func2: function () {
console.log('func2');
},
}
);
Позвольте мне знать, если это помогает.
благодаря