Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未终止的字符串文字,在Javascript中使用PHP_Php_Javascript - Fatal编程技术网

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

未终止的字符串文字,在Javascript中使用PHP,php,javascript,Php,Javascript,我在Firebug中发现了以下错误: SyntaxError:未终止的字符串文字 面板测量[i]=“代码> 现在我所有的功能都无法工作。。。 我尝试过多种解决方案,但都不管用。。。 这是我的代码: <script type="text/javascript" language="javascript> <?php $i = 0; while(isset($dbPanel_Name[$i])) { ?>

我在Firebug中发现了以下错误:

SyntaxError:未终止的字符串文字

面板测量[i]=“代码>

现在我所有的功能都无法工作。。。 我尝试过多种解决方案,但都不管用。。。 这是我的代码:

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

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

面板品牌类型[i]=;
注意,我删除了PHP标记周围的双引号,
json\u encode
本身提供了它们

此解决方案唯一的潜在问题是,您注入的字符串必须是UTF-8,但是使用
addslashes
的现有代码也有类似的问题(它盲目地假设您使用的是单字节编码),因此不存在回归


最后,在尝试访问PHP变量之前,请确保它们确实已设置好!如果没有此类变量,PHP将在JavaScript代码预期的位置发出警告:这肯定会毁了你的一天。

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

面板品牌类型[i]=;
注意,我删除了PHP标记周围的双引号,
json\u encode
本身提供了它们

此解决方案唯一的潜在问题是,您注入的字符串必须是UTF-8,但是使用
addslashes
的现有代码也有类似的问题(它盲目地假设您使用的是单字节编码),因此不存在回归


最后,在尝试访问PHP变量之前,请确保这些变量已经设置好了!如果没有这样的变量,PHP会在JavaScript代码预期的地方发出警告:这肯定会毁了你的一天。

谢谢你的帮助,但当我不添加双引号时,Fire bug会给出缺少引号的语法错误,当我添加引号时,Fire bug会发出警告它给出了如下语法错误:Panel_brand_type[i]=“value”“;有什么建议吗?@HarmenBrinkman:如果PHP中存在变量,那么就没有其他任何东西会导致JS错误(即使字符串不是UTF-8,也会导致
null
值而不是错误)。因此,唯一合乎逻辑的解释是,您正在注入不存在的变量的值。由于某些原因,它现在确实可以工作,无需额外保存或其他更改,我将此标记为答案!非常感谢!感谢您的帮助,但当我不添加双引号时,Fire bug会给出缺少引号的语法错误,并且当我o添加它们会出现如下语法错误:Panel_brand_type[i]=“value”“;有什么建议吗?@HarmenBrinkman:如果PHP中存在变量,则没有任何其他可能导致JS错误(即使字符串不是UTF-8,也会导致
null
值而不是错误)。因此,唯一合乎逻辑的解释是,您正在注入不存在的变量的值。由于某些原因,它现在确实有效,无需额外保存或其他更改,我将此标记为答案!非常感谢!
Panel_brand_type[i] = <?php echo json_encode($dbPanel_Brand_Type[$i]); ?>;