想知道是否有人可以帮我解决一个小问题。当我的用户登录到我的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文件中吗?
亲切的问候
答案 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 + '";
对于跨浏览器支持,您还可以使用jQuery(attr()
或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']; ?>" />';