【发布时间】:2017-04-19 19:28:21
【问题描述】:
我有一个 PHP 脚本,它在 PHP 中创建一个对象,然后在通过 json_encode() 运行后由 jQuery 使用。我一直在尝试在 PHP 对象中包含一个 jQuery 倾斜函数,该函数将在运行 json_encode 后适用于我的 jQuery 脚本,但我无法正确处理。
例如,PHP:
function get_columns_object() {
foreach( ... ) {
$columns[ $table ][] = array(
'data' => $name === 'cb' ? null : $name,
'title' => $header[ 'title' ],
'callback' => <<== HOW TO SPECIFY INLINE FN HERE?
);
}
}
然后,在输出页面 HTML 的 PHP 脚本中,我包括:
<script async>
var columns = <?php echo json_encode( get_columns_object() ); ?>;
</script>
这适用于变量,但如何使用这种方法包含 jQuery 回调函数和内联 jQuery 函数?或者我可以吗? :S
【问题讨论】:
-
json_encode()无法理解function,所以建议先保存函数代码,在创建javascript时重写。 -
@twisty 所以整个解决方法是排除内联函数“字符串”进行编码?也许我过于简单化了。第二篇文章很棒。谢谢你。
-
我认为它不了解它是什么对象类型,只是做了一些快速研究。我同意,第二篇文章更清晰,更有帮助,只是更旧。现在应该可以在 jQuery 3.0+ 中使用
JSON.parse() -
函数不包含在 json 类型中,请查看json.org。一种解决方法是在之前声明函数并使用名称作为字符串引用它,看看:stackoverflow.com/questions/912596/…