如何将php变量值赋给javascript变量

时间:2018-02-28 15:19:35

标签: javascript php

我正在尝试将值从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;时,我可以看到该变量包含值。 请问我的代码中缺少什么?非常感谢你。

1 个答案:

答案 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'
    }
});