2012-04-11 32 views
1

不知道有人能帮我解决一些小问题。当我的用户登录到我的php网站,像这样<?php echo $_SESSION['SecurityID_ContactName']; ?>我有会话值存储。将会话值添加到js表单文件?

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

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

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

您可以使用JavaScript中getAttribute()例如查询它:

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。在这种情况下,网络服务器将运行它,所以你可以在里面使用PHP命令。在这种情况下,您应该发送适当的标题(Content-type: text/javascript)。

+0

您好,非常感谢您的回答,将它存储在html中已经工作过,此方法是否也可用于添加存储其他会话?我还需要插入电子邮件会话值,是否可以将此添加到js中的body标记和var? – gary 2012-04-11 10:07:59

+0

我不知道如果它是一个非常好的主意,将数据存储在HTML属性中。您可以轻松地在JS – Dion 2012-04-11 10:12:10

+0

中打印出来像IE-8或更旧版本的旧浏览器可能没有这些属性(在HTML5中) – Dion 2012-04-11 10:14:09

0

你只是有错误的引号顺序;将其更改为:

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

您好,谢谢您的回答,我尝试添加上述但也删除了整个js脚本从php页面,设法使用上述海报解决方案得到它的工作。 谢谢 – gary 2012-04-11 10:09:11