将会话值添加到js表单文件?

时间:2012-04-11 08:14:24

标签: php javascript html session

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

我可以在整个站点中重用这些值来显示登录的用户名,但是我现在需要将此值存储在创建表单的外部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文件中吗?

亲切的问候

2 个答案:

答案 0 :(得分:2)

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

<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 + '";

Here is a small demo

对于跨浏览器支持,您还可以使用jQueryattr()data())或查看this question


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

答案 1 :(得分:0)

你只是错误的报价顺序;将其更改为:

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