2013-09-22 67 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

相關問題