3

是的,我知道这个问题被问了很多,但我对 JS 相当陌生,我需要在一些 JS 中使用 php 变量。我更清楚 PHP 是在服务器端执行而 JS 是客户端,但是其他人声称这是有效的。

我有一个名为“test1”的 PHP 变量,我想将它记录到 JS 控制台(例如):

 <?php
 $test1 = '1';

 print '
 <script type="text/javascript">
      var carnr;        
      carnr = "<?php print($test1); ?>"
      console.log(carnr);
 </script>';
 ?>

它的作用是将“”打印到 JS 控制台。不完全是我所希望的。

现在这甚至可能不可行,我可能不得不将变量从页面中传递出去,然后使用 AJAX 再次返回,但如果有可用的解决方案,我宁愿有一个快速简单的解决方案!

任何帮助表示赞赏。

4

6 回答 6

12

你可以这样做。

<script>
    var JSvar = "<?= $phpVar ?>";
</script>

PHP 将被解析,并且 $phpVar 的值将成为 JSvar 的值。

确保正确编码 phpVar。例如,如果 phpVar 包含双引号,你最终会得到一个损坏的 JS

于 2013-03-15T13:43:45.287 回答
7

使用这个不需要给 "" => 更改为 '.$test1.'..

<?php
 $test1 = '1';

 print '
 <script type="text/javascript">
      var carnr;        
      carnr = "'.$test1.'"
      console.log(carnr);
 </script>';
 ?>
于 2013-03-15T13:46:11.857 回答
3

尝试

<?php $test1 = '1'; ?>
<script type="text/javascript">
  var carnr;        
  carnr = "<?php print($test1); ?>"
  console.log(carnr);
</script>

一般来说,最好不要用 php 打印静态的东西,而是直接在 HTML 中使用静态(即不变的)东西,并且只在真正需要它的部分上使用 PHP。

于 2013-03-15T13:42:19.820 回答
1

你犯了一个错误,这样做:

<?php
 $test1 = '1';

 echo '<script type="text/javascript"> var carnr; carnr = "'.$test1.'" console.log(carnr)</script>';
?>
于 2013-03-15T13:41:12.120 回答
0

由于您正在使用 PHP 编写 JS,因此您可以简单地执行以下操作:

$test1 = "blah";

echo "<script type=\"text/javascript\">console.log($test1);</script>";
于 2013-03-15T13:41:30.900 回答
-2

您已经在打开的 php 标签中。打印行时,只需使用点将变量附加到输出。

例子:

print 'variable1 '.$variable1.' is now printed';
于 2013-03-15T13:43:08.653 回答