繁体   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