2013-09-22 70 views
1

好吧,嗨。在字符串中使用PHP作为字符串。 (jQuery)

因此,在我有下面的代码中,我使用if语句来检查用户是否是管理员,但问题是它没有检查它,它甚至没有调用它并在控制台中它说:“未捕获的SyntaxError:意外的令牌<”。 我猜测它立即执行PHP代码,但这不是我想要的,我只是希望它把它放入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

您不能在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> 
+0

有一件事,我刚刚意识到if语句中的“$ poster”应该是“commentSubData [(x + 1)]”,我会如何添加它? – 9903286

+0

你不能混合使用PHP来识别JS变量。我会更新我的答案,告诉你 – Lance

+0

完成!让我知道它是否有效。 – Lance

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

+0

正如@Lance说你需要把你的JavaScript代码PHP文件内内标签! – Kelsadita

相关问题