WAC*_*020 1 javascript php ajax json function
我有一个$ .POST调用,返回需要运行的函数的名称,但它不会执行该函数,我不知道为什么.
这是一个例子:
JS档案:
$(function(){
$.post('test.php',{event: 'add'},
function(data){
data.func(data.msg);
},'json');
function test(msg){
alert(msg);
}
});
Run Code Online (Sandbox Code Playgroud)
PHP Ajax:
<?php
switch($_POST['event']){
case 'add':
$output['func'] = 'test';
$output['msg'] = 'This is add message';
break;
case 'delete':
$output['func'] = 'test';
$output['msg'] = 'This is delete message';
break;
}
echo json_encode($output);
?>
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是ajax返回函数的名称(测试)但它不会运行该函数,我该如何解决这个问题?
不要使用EVAL.
而是使用您想要执行的函数创建一个对象.例如:
var functionTable = {
test: function (msg) {
alert(msg);
}
};
$.post('test.php', { event: 'add' }, function (data) {
if (functionTable.hasOwnProperty(data.func)) {
functionTable[data.func](data.msg);
}
}, 'json');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1565 次 |
| 最近记录: |