通过JQ的$.get传一个json到Common/list,json里面包含了函数名和参数已经参数内容格式:
json:
'type':'function',
'f_name':'get_info_zdCA',
'f_var':[
{
'type':'combine',
'value':[
{
'type':'fixed',
'value':'app_category_id'
},
{
'type':'fixed',
'value':'='
},
{
'type':'key',
'value':'app_category_id'
}
]
},
{
'type':'fixed',
'value':'app_category'
},
{
'type':'fixed',
'value':'app_category'
}
]这段代码想要实现的实际上是:{:get_info_zdCA('app_category_id ='.$key['app_category_id'],'app_category','app_category')}get_info_zdCA(条件,表名,输出字段),用来获取某张表中满足条件的某个这段值;
处理这段JSON的时候,为了通用,我做了一个转换函数,将JSON转换成上面的这个函数需要的参数格式,该函数格式为:translate_f($list,$kk)《translate_f(值数组,上面这一整段代码)》,$list就是volist里面的循环的$vo,通过translate_f()将$kk循环存储在$var_str[]中,然后:
return $kk['f_name'](implode(',',$var_str));
问题来了:
1.当只有一个参数的时候可是实现;
2.当我把函数get_info_zdCA()的参数改为数组的时候,translate_f返回改为$kk['f_name']($var_str),get_info_zdCA()里面的三个参数依照顺序从数组中取出时,可以使用;
3.但是我开始的那种写法不能使用,而且type为combine的时候我同样使用的是implode来组合这个格式,这个点上也会出错,也就是在2中的get_info_zdCA能正常使用的时候,get_info_zdCA()的第一个参数我也是要写死的。
求解。
好心人能加个QQ最好:549339569
最佳答案