doubeng3216 2013-02-12 18:37
浏览 64
已采纳

如何在JS脚本中正确回显PHP变量?

I have this script that needs to print and it is within a PHP file as I need to pass it options because I am using the jQuery UI Tabs plugin.

Here is what I have:

<?php 
$collapsible = "true";
$active = "2";

$options = array( 'collapsible' => $collapsible, 'active' => $active );
?>
    <script type="text/javascript">
        jQuery(document).ready(function() {
            jQuery( '.tabs' ).tabs({
                collapsible : <?php echo $options["collapsible"]; ?>,
                active : <?php echo $options["active"]; ?>
            });
        });
    </script>

Ok so everything works however the two options collapsible and active isn't effecting it. But if I bypass the php variables and just hardcode the option settings in for collapsible and active, then it works. So I am not sure why the variables have no effect. I've even tried type casting it with (int) for active and (bool) for collapsible but still no dice.

Thanks for looking.

  • 写回答

2条回答 默认 最新

  • dourangdz750379 2013-02-12 18:39
    关注

    Rather than adding quotes, run the value through json_encode. This will ensure proper escaping as well:

    <script type="text/javascript">
        jQuery(document).ready(function() {
            jQuery( '.tabs' ).tabs({
                collapsible : <?php echo json_encode($options["collapsible"]) ?>,
                active : <?php echo json_encode($options["active"]) ?>'
            });
        });
    </script>
    

    It also gives you the added benefit of being able to use literal types as opposed to all strings in your PHP:

    <?php
    $collapsible = true;
    $active = 2;
    

    And, per axel.michel suggestion in comments, could be simplified to:

    <?php
    $options = array('collapsible' => true, 'active' => 2);
    ?>
    
    <script type="text/javascript">
        jQuery(document).ready(function() {
            jQuery( '.tabs' ).tabs(<?php echo json_encode($options); ?>);
        });
    </script>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100