如何将JavaScript放入JavaScript中?

时间:2010-07-27 15:52:53

标签: php javascript

我尝试过(但不能正常工作):

<?php  
  $htmlString= 'testing';
?>
<html>
  <body>
    <script type="text/javascript">  
      var htmlString=<?php echo $htmlString; ?>;
      alert(htmlString);
    </script>
  </body>
</html>

以下是我为此目的使用的tutorial

7 个答案:

答案 0 :(得分:47)

试试这个:

<?php $htmlString= 'testing'; ?>
<html>
  <body>
    <script type="text/javascript">  
      // notice the quotes around the ?php tag         
      var htmlString="<?php echo $htmlString; ?>";
      alert(htmlString);
    </script>
  </body>
</html>

遇到类似这样的问题时,最好检查浏览器是否存在JavaScript错误。不同的浏览器有不同的显示方式,但寻找一个javascript控制台或类似的东西。另外,请检查浏览器查看的网页来源。

有时初学者会对字符串中的引号感到困惑:在PHP部分中,您已将'testing'分配给$htmlString。这会将一个字符串值放在该变量中,但该值中没有引号:它们仅用于解释器,因此他知道:哦,现在是一个字符串文字

答案 1 :(得分:24)

你的字符串周围缺少引号:

...
var htmlString="<?php echo $htmlString; ?>";
...

答案 2 :(得分:11)

如果您使用.js文件,则上述所有说明均无效。如果要将PHP解析为.js文件,则必须通过使用以下命令修改.js文件所在的.htaccess来对服务器进行更改:

<FilesMatch "\.(js)$">
    AddHandler application/x-httpd-php .js
</FilesMatch>

然后,包含以下代码的文件test.js文件将在客户端执行.JS,并在服务器端使用已解析的PHP执行:

<html>
<head>
<script>
function myFunction(){
   alert("Hello World!");
}
</script>
</head>
<body>
<button onclick="myFunction()"><?php echo "My button";?></button>
</body>
</html>

答案 3 :(得分:9)

将服务器端数据放入生成的javascript代码的唯一正确方法:

<?php $jsString= 'testing'; ?>
<html>
  <body>
    <script type="text/javascript">      
      var jsStringFromPhp=<?php echo json_encode($jsString); ?>;
      alert(jsStringFromPhp);
    </script>
  </body>
</html>

使用简单的引号,变量的内容不会针对HTML和javascript进行转义,因此很容易受到XSS攻击......

出于类似原因,我建议您使用document.createTextNode()而不是设置innerHTML。 OFC。它更慢,但更安全......

答案 4 :(得分:6)

你需要在javascript

中围绕字符串引用
var htmlString="<?php echo $htmlString; ?>";

答案 5 :(得分:0)

正如其他人指出的那样,您需要使用引号,但我只想指出,有一种写此相同代码行的简便方法

var htmlString="<?=$htmlString?>";

看到您可以省略“ php echo”的内容,并用简单的“ =”代替。

答案 6 :(得分:0)

让我们看看两个选项:

1。)在Javascript中使用PHP

library(tidyverse)
scalefactor <- max(Complete_Seasonality_Data$PRCP)/max(Complete_Seasonality_Data$Temp_C)
p <- ggplot(Complete_Seasonality_Data, aes(x = NewMonths5))
p <- p + geom_point(aes(y = PRCP, colour = "PRCP"))  
p <- p + geom_point(aes(y = Temp_C*scalefactor, colour = "Temp")) 
p <- p + scale_y_continuous(sec.axis = sec_axis(~./scalefactor, name = ylabseasonality))
p <- p + scale_colour_manual(values = c("blue", "red"))
p <- p + labs(y = "Precipitation (in)",
              x = "Month",
              colour = "Parameter")
p <- p + theme(axis.text.x = element_text(angle = 90)) 
p

注意:文件名只能是.php。

2。)在PHP中使用Javascript变量

<script>
    <?php $temp = 'hello';?>
    console.log('<?php echo $temp; ?>');
</script>