将var从php传递给javascript

时间:2010-03-23 11:01:22

标签: php javascript

我尝试做一些非常严格的事情......让javascript获得php值

here is the page

这是代码..

<script language="javascript"> 
 <?php $imagepath = $_REQUEST["path"]; ?>
 var whatisthepath = <?php $imagepath; ?>
 alert (whatisthepath);
</script>

总是不明白......为什么?

-

最终的wordking优化代码:

alert ("<?php echo $_REQUEST["path"]; ?>");

6 个答案:

答案 0 :(得分:4)

缺失:var周围的引号,php输出到js var,var设置后的分号:

<script language="javascript">  
    <?php $imagepath = $_REQUEST["path"]; ?>
    var whatisthepath = "<?php echo $imagepath; ?>";
    alert (whatisthepath);
</script>

答案 1 :(得分:3)

JavaScript中的所有字符串都需要用引号括起来。例如:

var whatisthepath = "<?php $imagepath; ?>";

另一个问题是你实际上并没有打印字符串。以上所有代码行都会产生一组空引号。正确的方法是echo图像路径

var whatisthepath = "<?php echo $imagepath; ?>"

答案 2 :(得分:2)

正是出于这个目的,PHP提供了<?= ... ?>的简写符号。要输出变量$ imagepath的值,可以使用<?= $imagepath ?>。为此,必须将short_open_path ini变量设置为true。这可能不是您的Web服务器的默认设置。

因此,这会将代码转换为

<?php
ini_set('short_open_tag', TRUE); 

$imagepath = SOME_VALUE; 
?>

<script language="javascript">
  var whatisthepath = "<?= imagepath ?>"; 
  alert(whatisthepath); 
</script>

如果只是几个变量,更改ini值可能不方便,但如果它在代码中经常发生,我倾向于发现它使事情更具可读性。

答案 3 :(得分:1)

您忘记在$ imagepath前面添加echo或print语句

<script language="javascript">  
    <?php $imagepath = $_REQUEST["path"]; ?>
    var whatisthepath = <?php echo $imagepath; ?>
    alert (whatisthepath);
</script>

PHP是一种服务器语言,而javascript是一种客户端语言。这意味着你必须以威胁HTML的方式威胁它。

例如:

<div><?php echo $content; ?></div>

希望这会让你更好地理解......

答案 4 :(得分:1)

您可以使用json_encode()确保为javascript正确转义和引用变量等。 e.g:

<?php $imagepath = $_REQUEST["path"]; ?>

<script language="javascript"> 
    var whatisthepath = <?php echo json_encode($imagepath); ?> ;
    alert (whatisthepath);
</script>

答案 5 :(得分:0)

您应该使用以确保变量具有正确的JS语法。

<script language="javascript">  
    <?php $imagepath = $_REQUEST["path"]; ?>
    var whatisthepath = <?php echo json_encode($imagepath); ?>;
    alert (whatisthepath);
</script>