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条)

报告相同问题?

悬赏问题

  • ¥60 不懂得怎么运行下载来的代码
  • ¥15 CST导出3D模型图为什么和软件显示不一样?
  • ¥15 加热反应炉PLC控制系统设计(相关搜索:梯形图)
  • ¥15 python 用Dorc包报错,我的写法和网上教的是一样的但是它显示无效参数,是什么问题
  • ¥15 经过滑动平均后的一维信号还原用什么结构好呢?
  • ¥15 指定IP电脑的访问设置
  • ¥30 matlab ode45 未发现警告,但是运行出错
  • ¥15 为什么devc++编译项目会失败啊
  • ¥15 vscode platformio
  • ¥15 代写uni代码,app唤醒