我正在尝试将值从php变量传递给javascript变量。因此,不是每次都手动定义{"数据":"国家"},{"数据":"客户名称"} ...如下所示
<script type="text/javascript">
$(document).ready(function () {
$('#users').DataTable({
"columns": [
{"data": "Country"},
{"data": "Customer Name"},
{"data": "Order Number"},
{"data": "Address"}
],
"processing": true,
"serverSide": true,
"ajax": {
url: 'demo2.php',
type: 'POST'
}
});
});
</script>
让我说我的html顶部定义了一个php变量,如下所示
<?php
$jsColumns = '{"data": "Country"},{"data": "Customer Name"},{"data": "Order Number"},{"data": "Address"}';
?>
我想在我的脚本中插入这个php变量
$('#users').DataTable({
"columns": [
<?php echo $jsColumns;?>
],
"processing": true,
"serverSide": true,
"ajax": {
url: 'demo2.php',
type: 'POST'
}
});
它在脚本内部没有工作,但是当我在php部分的顶部使用echo $jsColumns;
时,我可以看到该变量包含值。
请问我的代码中缺少什么?非常感谢你。
答案 0 :(得分:0)
您正在做的事情看起来是正确的,但实际数据中的特殊字符可能会导致问题,而且不安全。你可以创建一个数组数组,然后使用json_encode来逃避它 - 例如
<?php
$jsColumns = array(
array('data'=>'Country'),
array('data'=>'Customer Name'),
array('data'=>'Order Number'),
array('data'=>'Address')
);
?>
然后
$('#users').DataTable({
"columns": <?php echo json_encode($jsColumns); ?>,
"processing": true,
"serverSide": true,
"ajax": {
url: 'demo2.php',
type: 'POST'
}
});