将会话值添加到 js 样式文件


Add session value to a js form file?

想知道是否有人可以帮助我解决一个小问题。当我的用户像这样<?php echo $_SESSION['SecurityID_ContactName']; ?>登录到我的 php 站点时,我存储了会话值。

我可以在整个站点中重用这些值来显示登录的用户名,但是我现在需要将此值存储在创建表单的外部 js 文件中。然后,这会将登录的用户名放在表单字段中,该表单字段将提交回mysql?

js 文件中的表单具有如下字段:

        form += '<label>Name</label>';
        form += '<input type="text" id="author" placeholder="Your name" />';

我编辑它以保持会话:

        form += '<label>Name</label>';
        form += '<input type="text" id="author" value="<?php echo $_SESSION['SecurityAssist_ContactFullName']; ?>  />'";

这不起作用,没有真正的错误,它只是从 php 页面中删除了整个 js 脚本?我可以将会话值存储在 js 文件中吗?

亲切问候

您仍然可以将其存储在 HTML 中,例如存储在 body 标记上的 data- 属性中。

<body data-username="<?php echo $_SESSION['SecurityAssist_ContactFullName']; ?>">

您可以使用getAttribute()在 Javascript 中查询它,例如:

var userName = document.body.getAttribute('data-username');
...
form += '<input type="text" id="author" value="' + userName + '";

这是一个小演示

对于跨浏览器支持,您也可以使用jQuery(attr()data())或检查此问题。


另一个(IMO不太干净)解决方案是将Javascript文件重命名为.php。在这种情况下,Web服务器将运行它,因此您可以在内部使用PHP命令。在这种情况下,您应该发送适当的标头 ( Content-type: text/javascript )。

您只是引号顺序错误;将其更改为:

form += '<input type="text" id="author" value="<?php echo $_SESSION['SecurityAssist_ContactFullName']; ?>" />';