[英]How do I get a php element into a javascript
我正在為論壇編寫聊天腳本,似乎它使用php來獲取用戶的頭像。 (PS idk關於天氣的任何信息或非javascript都可以使用sql數據庫或如何使用它,因此我想堅持使用php),但問題是,如果我將php變量放入其中,javascript就不喜歡它。
getUserNodeString: function(userID, userName, userRole) {
var encodedUserName, str;
if(this.userNodeString && userID === this.userID) {
return this.userNodeString;
} else {
encodedUserName = this.scriptLinkEncode(userName);
str = '<div id="'
+ this.getUserDocumentID(userID)
+ '"><a href="javascript:ajaxChat.toggleUserMenu(\''
+ this.getUserMenuDocumentID(userID)
+ '\', \''
+ encodedUserName
+ '\', '
+ userID
+ ');" class="'
+ this.getRoleClass(userRole)
+ '" title="'
+ this.lang['toggleUserMenu'].replace(/%s/, userName)
+ '">'
+ userName
+ '</a><?php echo \'<img src="test.php" />\' ?>'
+ '<ul class="userMenu" id="'
+ this.getUserMenuDocumentID(userID)
+ '"'
+ ((userID === this.userID) ?
'>'+this.getUserNodeStringItems(encodedUserName, userID, false) :
' style="display:none;">')
+ '</ul>'
+'</div>';
if(userID === this.userID) {
this.userNodeString = str;
}
return str;
}
},
'</a><?php echo \\'<img src="test.png" />\\' ?>'
是我試圖使用的那行,我還沒有放入變量,我用一個測試的immage對其進行了嘗試第一 應該是這樣的:
+ '</a><img src="<?php echo htmlentities($src, ENT_DISALLOWED | ENT_QUOTES | ENT_HTML5) ?>" />'
對於只需要包含PHP變量的代碼的特定部分,您應該只返回PHP。 其余的應該是文字HTML或Javascript。
您還應該使用htmlspecialchars()
來確保變量內容經過正確編碼以在HTML屬性中使用,以防它包含特殊字符。
以上是將PHP變量轉換為包含HTML代碼的JS文字的方法。 如果只是想將PHP值放入Javascript變量中,則略有不同。 然后,您可以使用json_encode()
生成JS表示形式:
var js_var = <?php echo json_encode($php_var) ?>;
這是一個.js文件,取自ajax聊天
它無法在.js文件中運行,因為PHP無法解析這些文件。 可以對其進行設置以便對其進行解析,但是我強烈建議您永遠不要這樣做 。
此外,您不需要PHP即可完成工作。
原始答案
這行內的PHP不正確:
+ '</a><?php echo \'<img src="test.php" />\' ?>'
或者只是剝離PHP部分:
<?php echo \'<img src="test.php" />\' ?>
要使其正常工作,您需要刪除那些轉義的引號(您不必擔心JS引號,因為PHP解析器將首先命中該文件,使您回顯任何內容),並添加一個分號:
<?php echo '<img src="test.php" />'; ?>
整行應為:
+ '</a><?php echo '<img src="test.php" />'; ?>'
將呈現為:
+ '</a><img src="test.php" />'
為此,使用PHP確實沒有意義,但是可以。
當然,它必須位於服務器將使用PHP解析的文件中(默認情況下為.php文件,強烈建議您不要為JS文件設置PHP解析)。 您永遠不會在注釋中回答有關文件類型的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.