繁体   English   中英

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

[英]How to properly echo PHP variables within JS script?

我有这个需要打印的脚本,它在PHP文件中,因为我需要传递它选项,因为我使用的是jQuery UI Tabs插件。

这是我有的:

<?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>

好吧所以一切正常但是两个选项可折叠和活动不会影响它。 但是,如果我绕过php变量并只是硬编码可折叠和活动的选项设置,那么它的工作原理。 所以我不确定为什么变量没有效果。 我甚至尝试使用(int)类型转换为活动和(bool)可折叠但仍然没有骰子。

谢谢你的期待。

而不是添加引号,通过json_encode运行值。 这将确保正确的转义:

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

它还为您提供了使用文字类型而不是PHP中所有字符串的额外好处:

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

并且,根据评论中的axel.michel建议,可以简化为:

<?php
$options = array('collapsible' => true, 'active' => 2);
?>

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

尝试在值周围添加引号并对输出进行编码

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM