php - ao数据表的列无法正常工作

标签 php jquery sorting datatables

我正在尝试处理来自其他 php 页面的 aoColumns 的值。但随后它就无法正常运行,而如果我使用静态值,那么它就可以工作。 我的代码是这样的: 在php页面中

$aoColumn = array("null","null","null","{bSortable: false}");
<input type="hidden" name="aoColumn" id="aoColumn" value="' . implode(",",$aoColumn) . '">

在js页面

var aos = $('#aoColumn').val();
 var ao = (aos)?aos.split(","):[];
 $.each(ao,function(i){
 });

并在 dataTable 声明中: “aoColumns”:ao

但是它不起作用。 请让我知道这个问题。 提前致谢。

更新

我知道,在我的例子中 aoColumns 打印 ["null", "null", "null", "{bSortable: false}"] 而它应该是[null,null,null,Object{bSortable=false}]。怎么做?

最佳答案

$aoColumn 传递给脚本的方式是错误的。您应该将其作为 JSON 传递——如果 JSON 在 HTML 内传输,则它也需要进行正确的 HTML 编码:

$aoColumn = array(null, null, null, array('bSortable' => false));
echo '<input ... value="' . htmlspecialchars(json_encode($aoColumn)).'">';

然后用 $.parseJSON 将其变回对象:

var aoColumn = $.parseJSON($('#aoColumn').val());

但是,我不确定您为什么要为隐藏字段烦恼。您可以直接将配置传递给 JavaScript:

<?php $aoColumn = array(null, null, null, array('bSortable' => false)); ?>

<!-- later on.... -->
<script>
    var aoColumn = <?php echo json_encode($aoColumn); ?>;
</script>

关于php - ao数据表的列无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18103918/

相关文章:

PHP: bootstrap.php

php - 循环遍历复选框数组

php - 使用 PHP/SQL 通过单击事件处理程序实现动态 JavaScript 变量

javascript - 不同body背景onClick之间如何过渡? (尝试 2)

sorting - ElasticSearch排序不起作用

sorting - Symfony表单实体/文档对属性进行排序

php - 尝试通过 curl 发布后从页面中获取数据

javascript - 使用 POST 检测成功的 html 表单提交到来自 PhoneGap、移动 jQuery 应用程序的跨域脚本

javascript - AngularJs - 带有ajax加载的模态窗口

javascript - 不能使用排序方法按升序对单词进行排序吗?