Firebug中的未终止字符串文本错误


Unterminated String Literal Error in Firebug

当我尝试包含以下代码时,我在Firefox SyntaxError: unterminated string literal中得到错误:

<script>
 function makeProdiv(data){
       var tbl_body = "";
       var tbl_row = "";
       tbl_row +="<?php foreach($data as $row) {} ?>" (Error at this line)
       tbl_body += tbl_row;
       return tbl_body;
 }
</script>

如果我删除这一行,那么错误就会消失。

我正在尝试:我正在尝试通过从DB和显示值返回的结果循环。

请问有人可以帮忙吗?

PHP生成的内容中很可能有双引号。您需要正确地转义它们,或者,如果PHP内容中没有单引号,您可以这样做:

tbl_row +='<?php foreach($data as $row) { /* ... */} ?>';

如注释中所述,在PHP内容中使用换行符也可能导致此问题。删除或替换它们

试试这样:

<?php foreach ($data as $row) { ?>
    tbl_row += <?php echo json_encode(whatever); ?>;
<?php } ?>

使用json_encode()将确保PHP值为Javascript正确编码。

试试这个:

      <?php foreach($data as $row) {?>
        tbl_row +=<?php echo $row;?>
      <? }?>

它包含什么?的'data'被传递给这个函数"makeProdiv(data)",$ data .

我猜$data是一个数组"tr"从db.