2012-04-11 51 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