客户端按下按钮后 - 必须执行服务器端功能,并根据结果执行不同的客户端功能..
为了实现这一点,我使用了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函数使用对respone文本的开关并执行合适的客户端函数...
感觉有更好的方法来做到这一点......任何改进建议都将受到赞赏.. :)
答案 0 :(得分:1)
我建议你:
这是代码的样子:
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');
},
}
);
如果有帮助,请告诉我。
由于