未终止的字符串Literal,在Javascript中使用PHP

not*_*777 1 javascript php

我在Firebug中收到此错误:

SyntaxError:未终止的字符串文字

Panel_Measurements [i] ="<br />

现在我的所有功能都无法工作......我尝试了多种解决方案,但它们都没有工作......这是我的代码:

<script type="text/javascript" language="javascript>
   <?php
      $i = 0;
      while(isset($dbPanel_Name[$i]))
      {
   ?>

          Panel_brand_type[i]   = "<?php echo addslashes($dbPanel_Brand_Type[$i]); ?>";
          Panel_description[i]  = "<?php echo addslashes($dbPanel_Description[$i]); ?>";
          Panel_measurements[i] = "<?php echo addslashes($dbPanel_Measurements[$i]); ?>";
          Panel_warranty[i] = "<?php echo addslashes($dbPanel_Warranty[$i]); ?>";
          i++;
   <?php
         $i++;
       }
    ?>
</script>
Run Code Online (Sandbox Code Playgroud)

如果还有其他方法可以将PHP变量转换为Javascript,我很想知道!任何类型的帮助对我都有用.

诚恳,

哈门布林克曼

Jon*_*Jon 6

在JavaScript中注入字符串文字(以及几乎所有其他类型的值)的更好方法是json_encode:

Panel_brand_type[i] = <?php echo json_encode($dbPanel_Brand_Type[$i]); ?>;
Run Code Online (Sandbox Code Playgroud)

请注意,我删除了PHP标记周围的双引号,json_encode并自行提供.

这个解决方案的唯一潜在问题是你注入的字符串必须是UTF-8,但你现有的代码addslashes也有类似的问题(它盲目地假设你使用单字节编码)所以恕我直言,没有回归.

最后,确保在尝试访问它们之前实际设置了PHP变量!如果没有这样的变量,PHP会在预期的JavaScript代码中发出警告:这是破坏你一天的可靠方法.