簡體   English   中英

我如何將php元素轉換為JavaScript

[英]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) ?>;

UPDATE

這是一個.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM