在字符串中使用PHP作为字符串。 (JQuery的)

时间:2013-09-22 06:24:48

标签: javascript php jquery

好的,嗨。

所以在我下面的代码中我使用if语句来检查用户是否是管理员,但问题是它没有检查它,它甚至没有调用它并且在控制台中它说:“未捕获的SyntaxError:意外的令牌<”。 我猜它会立即执行PHP代码,但这不是我想要的,我只是想把它放到div中。 (并且因为它检查会话,它应该工作,因为我已经检查过会话是否包含有关div的那些东西。)

代码:

for (var x = 0; x < commentData.length; x++) {
    if(x!=(commentData.length-1)) {
        var commentSubData = commentData[x].split("^");
        commentDIV = commentDiv+"<p style='display:block'><font size='4' color='white'>"+commentSubData[(x+3)]+"</font><br><br><font size='2' color='lightgray'>Posted on <font color='lightblue'>"+commentSubData[(x+2)]+"</font> by <font color='lightblue'>"+commentSubData[(x+1)]+"</font></font>
<?
    if($poster == $_SESSION['user_forumname'] || $_SESSION['perm_removecomments'] == 1) {
?>
        &nbsp;<font color='red'><a onclick='dialog(<?=$post_id;?>, "+commentSubData[(x+0)]+")' title='Remove'><span class='glyphicon glyphicon-remove'></span></a></font>
<?
    }
?>
     </p>
     <hr>";
    }
}

2 个答案:

答案 0 :(得分:2)

您不能在JS文件中使用PHP代码。如果你使用的是内联的JS代码并且不在外部JS文件中,你可以这样做

<script>
 var forumname = "<?php echo $_SESSION['user_forumname']; ?>";
 for (var x = 0; x < commentData.length; x++) {
        if(x!=(commentData.length-1)) {
            var commentSubData = commentData[x].split("^");

            var commentDIV = commentDiv+"<p style='display:block'><font size='4' color='white'>"+commentSubData[(x+3)]+"</font><br><br><font size='2' color='lightgray'>Posted on <font color='lightblue'>"+commentSubData[(x+2)]+"</font> by <font color='lightblue'>"+commentSubData[(x+1)]+"</font></font>";
<?php
     if($poster == $_SESSION['user_forumname'] 
     || $_SESSION['perm_removecomments'] == 1) {
?>
            if(commentSubData[x+1] == forumname)
            {
                 var string = "&nbsp;<font color='red'><a onclick='dialog(<?php echo $post_id; ?>, "+commentSubData[(x+0)]+")' title='Remove'><span class='glyphicon glyphicon-remove'></span></a></font>";
<?php
     }
?>
                 var string2 = "</p>
                               <hr>";
                 //This is the final string
                 var final = commentDIV.concat(string).concat(string2);
            }
        }
    }
</script>

答案 1 :(得分:0)

你能试试吗

for (var x = 0; x < commentData.length; x++) {
        if(x!=(commentData.length-1)) {
            var commentSubData = commentData[x].split("^");
            commentDIV = commentDiv+"
                <p style='display:block'>
                <font size='4' color='white'>"+commentSubData[(x+3)]+"</font>
                <br><br>
                <font size='2' color='lightgray'>Posted on <font color='lightblue'>"+commentSubData[(x+2)]+"</font> by <font color='lightblue'>"+commentSubData[(x+1)]+"</font></font>
                <?php
                if($poster == $_SESSION['user_forumname'] || $_SESSION['perm_removecomments'] == 1) {
                ?>
                &nbsp;<font color='red'><a onclick='dialog(<?=$post_id;?>, "+commentSubData[(x+0)]+")' title='Remove'><span class='glyphicon glyphicon-remove'></span></a></font>
                <?php
                }
                ?>
                </p>
                <hr>";
        }
    }

因为这可能是因为起始PHP标记可以写成<?php