我有一个简单的php变量,我需要继续使用javascript部分。
代码:
<?php
if ($p == 'home') { $selected == '0'; }
if ($p == 'music') { $selected == '1'; }
if ($p == 'videos') { $selected == '2'; }
if ($p == 'search') { $selected == '3'; }
if ($p == 'about') { $selected == '4'; }
if ($p == 'contact') { $selected == '5'; }
?>
<script type="text/javascript">
//SYNTAX: tabdropdown.init("menu_id", [integer OR "auto"])
tabdropdown.init("colortab", $selected) <-- $selected is the variable I want to carry over
</script>
答案 0 :(得分:8)
它与任何其他文本相同。
tabdropdown.init("colortab", <?php echo $selected; ?>)
由于该值是一组已知值中的一个,这些值都是数字,因此不需要转义或引用。
答案 1 :(得分:4)
首先
<?php
$map = array(
'home' => 0,
'music' => 1,
'videos' => 2,
'search' => 3,
'about' => 4,
'contact' => 5
);
$selected = $map[$p];
?>
我建议只使用一些变量,例如:
?>
<script type="text/javascript">
var data = { /*something that you want to pass to the script */ };
</script>
<?php
然后,降低,当您包含外部JS文件(在关闭标记之前 正确)时,您可以在文件中检查是否设置了变量data
。然后根据这些数据采取行动。
答案 2 :(得分:0)
虽然上面的解决方案会有所帮助,但它要求您将JavaScript嵌入HTML / PHP文件(授予您的权限)。
如果你有一个单独的js文件,那么你需要采取不同的方法。
将其存储在隐藏的HTML变量中:
<input type="hidden" id="ColorTabSelected" value="<?php echo($selected);?>">
然后在你的js
var selected = document.getEelementById("ColorTabSelected").value;
tabdropdown.init("colortab", selected);
一般来说,我发现这种方法最好,它促进了分离,意味着你没有可变和动态的可执行代码模块。这意味着您可以有效地隔离它以进行单元测试。
答案 3 :(得分:0)
<?php
$p = 'home';
$map = array(
'home' => '0',
'music' => '1',
'videos' => '2',
'search' => '3',
'about' => '4',
'contact' => '5'
);
$selected = isset($map[$p]) ? $map[$p] : $map['home'];
?>
<script type="text/javascript">
tabdropdown.init("colortab", <?=$selected?>)
</script>
答案 4 :(得分:-1)
尝试:
<?php $yourVar = "hello"; ?>
<script>
var yourVar = "<?php echo $yourVar ?>"
</script>