我有这个需要打印的脚本,它在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)可折叠但仍然没有骰子。
感谢您的光临。
答案 0 :(得分:2)
不是添加引号,而是通过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>
答案 1 :(得分:0)
尝试在值周围添加引号并对输出进行编码
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery( '.tabs' ).tabs({
collapsible : '<?php echo $options["collapsible"] ); ?>',
active : '<?php echo $options["active"] ); ?>'
});
});
</script>