Php 如何通过字符串到函数的转换通过AJAX传递JSON
我有一个dom操作函数,我想通过Ajax调用使用它 我在脚本中有一个本地函数定义为Php 如何通过字符串到函数的转换通过AJAX传递JSON,php,jquery,json,ajax,function,Php,Jquery,Json,Ajax,Function,我有一个dom操作函数,我想通过Ajax调用使用它 我在脚本中有一个本地函数定义为thisremove,我想通过Ajax调用它 var thisRemove = function(){$(this).remove();}; 在本地定义对象是没有问题的 var funcs_map = { "css":["color","#F00"], "fadeTo":[3000,0,thisRemove], }; 如何将上述对象作为JSON发送,或者确定字符串thisRemove是函数并将其
thisremove
,我想通过Ajax调用它
var thisRemove = function(){$(this).remove();};
在本地定义对象是没有问题的
var funcs_map = {
"css":["color","#F00"],
"fadeTo":[3000,0,thisRemove],
};
如何将上述对象作为JSON发送,或者确定字符串thisRemove
是函数并将其转换为函数
编辑:看来JSON无法编码JavaScript函数名(看起来像非引号字符串),所以我需要专注于将字符串转换为函数。我是个白痴,现在我明白了,如果字符串被定义为函数,我只需要将其转换为函数,因此我提出了一个简单的过滤器,它测试字符串是否被定义为窗口范围内的函数,并将该函数作为函数返回
function make_function(string){
if($.isFunction(window[string])){
return window[string];
}
return string;
}
我可以通过简单地传递所有字符串来使用它
$.each(arg,function(i,v){
arg[i] = make_function(arg[i]);
});
echo json_encode($your_data)
?php将如何解释thisRemove
?关于phpjson_encode()
的编辑意味着什么?我觉得你把JSON和JavaScript搞混了。JSON不是一种编程语言,它只是一种数据格式。JSON不能有函数、类、日期或类似的东西,无论您使用什么工具生成它。我刚刚了解到PHP(或者更确切地说是有效的JSON)不能保存看起来像非引号字符串的函数名。它也不能包含变量、指针、注释、循环。。。正如我所说,它不是一种编程语言,它只是一种轻量级的纯文本数据格式。