Javascript Firebug中未终止的字符串文字错误
当我尝试包含以下代码时,FirefoxJavascript Firebug中未终止的字符串文字错误,javascript,php,Javascript,Php,当我尝试包含以下代码时,FirefoxSyntaxError: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
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>
函数makeProdiv(数据){
var tbl_body=“”;
var tbl_row=“”;
tbl_行+=“”(此行出错)
tbl_body+=tbl_行;
返回tbl_体;
}
如果我删除这一行,错误就会消失
我正在尝试的是:我正在尝试循环从DB返回的结果和显示值
请任何人提供帮助?PHP生成的内容中很可能有双引号。您需要正确地转义它们,或者,如果PHP内容中没有单引号,您可以执行以下操作:
tbl_row +='<?php foreach($data as $row) { /* ... */} ?>';
tbl_行+='';
如评论中所述,在PHP内容中使用换行符也可能导致此问题。卸下或更换它们。尝试以下操作:
<?php foreach ($data as $row) { ?>
tbl_row += <?php echo json_encode(whatever); ?>;
<?php } ?>
tbl_行+=;
使用json\u encode()
将确保为Javascript正确编码PHP值。尝试以下操作:
<?php foreach($data as $row) {?>
tbl_row +=<?php echo $row;?>
<? }?>
tbl_行+=
里面装的是什么
传递到此函数“makeProdiv(数据)”的“数据”
&$data
我猜$data是从db获取的“tr”数组。在您的例子中,PHP是服务器端,JavaScript是客户端。如果您的PHP代码到达浏览器,则表明您的服务器设置有问题(或者您甚至没有服务器)。foreach的主体是否真的是空的,或者您决定不在这里复制它?对我来说很好。没有任何错误。@Barmar。这是一段很长的代码。所以我决定不包括在这里,因为我得到的是相同的身体error@user3909577-您有客户端错误。向我们展示你生成的客户端代码,而不是生成它的服务器端代码(一个废弃版本)。如果他在内容中有换行符,也可能是这样,因为JS不允许字符串中有换行符。然后你需要发布更多的代码,这样我们就可以看到你实际上在做什么导致了问题。我不相信你说你得到了一个空循环体的错误。@Barmar这就是我们两个。不要只发布未注释的代码-解释为什么它是一个解决方案。