将数据从PHP传递到JavaScript

时间:2011-07-22 06:58:44

标签: php javascript

我有一个简单的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>

5 个答案:

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