我想用AJAX加载数据表数据,并在行和单元格(类或数据属性)中添加一些参数。最棘手的部分是我有一个创建javascript的PHP助手。例如:
$datatables = array(
'type' => array(
'bAutoWidth' => false,
'ajax' => site_url('admin/parameters/area_add_type_table_data_ajax/' . $t_id),
'paging' => false,
'searching' => true,
'columns' => array(
array('width' => '20%', 'class' => 'text-center')
),
'info' => true,
'scrollX' => true,
),
);
这个PHP数组是JSON编码的,并创建显示表的javascript。
ajax源也退出JSON编码的数组,例如:
$data = array('data' => array(array('SOME TEXT HERE...'), array('SOME TEXT IN ANOTHER ROW...')); exit(json_encode($data);
此代码生成的一行是:
<tr role="row" class="odd"><td class="text-center">SOME TEXT HERE...</td></tr>
但是我需要添加一些&#34;参数&#34;到最后一行(tr)和一些单元格(tds)(双星号中的属性)。
<tr role="row" class="odd" **data-id="##"**><td class="text-center" **data-content="unit_short" data-id="##"**>SOME TEXT HERE...</td></tr>
这些ID取决于行中的当前数据,因此它们是可变的。
(我为一行代码示例道歉)
感谢您的帮助。如果不能用我的&#34; PHP-way&#34;来做,至少在纯JS中写一个解决方案。
答案 0 :(得分:1)
我不知道您的PHP帮助程序是如何工作的,但您可以使用createdRow
回调来执行此操作:
createdRow: function(tr, data, index) {
$(tr).attr('data-id', '##');
$('td', tr).eq(1)
.attr('data-content', 'unit_short')
.attr('data-id', '##')
}
问题不清楚##
是什么以及它来自何处,但这至少是要走的路。如果没有index
,则可以使用##
。