2013-02-28 131 views
0

我正在使用PHP,mySQL和Javascript編寫登錄系統。我的網站實際上是一個用JavaScript編寫的1頁應用程序 - 只有1個html頁面。所有的交互和導航都是通過javascript完成的。如何使用Javascript獲取URL變量

當用戶註冊時,我使用激活列中的32位數字鍵在數據庫中創建其記錄。我通過電子郵件發送給註冊人作爲激活鏈接。這將他們帶到一個激活他們的賬戶的PHP文件(或者如果有錯誤,則不會)。一切都很好。

激活(或錯誤)後,我可以把它們帶到一個html頁面(例如header('somesite.com/success.html'),告訴他們他們的賬戶是否被激活,但我寧願把它們帶回去在我的1頁JavaScript網站的特定功能。我該怎麼做?

我可以帶他們到網站,但我怎麼傳遞一個消息從我的PHP重定向到網站,所以它知道是否顯示一個成功或錯誤信息?

難道我把它放在重直如http://somesite.com?activation=success的網址是什麼?如果是這樣,我怎麼得到這個變量進入我的JavaScript?

我可以從php激活腳本中設置一個會話變量,並在我的代碼中檢查它,但看起來非常笨拙。

我可以在URL中設置一個散列,然後在代碼中選擇它,但是如果可以的話,我會避免散列導航。關於實現這個方法的任何想法?

從下方並在網站上其他地方的幫助下最終的答案:

function getURLParameter(name) { 
return decodeURIComponent(
    (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1] 
); 
} 

然後註冊一個重定向如somesite.com?email=somebody%[email protected] &鍵= 7da93f78cb4942555863c161f50f258d

我可以像getURLParameter('email')和getURLParameter('key')那樣獲取這些變量。

感謝大家的幫忙。喜歡這個網站

回答

1

你可以從URL中的變量用javascript:

我居然問類似的問題(我找不到它)有關獲取URL變量使用JavaScript,有人非常有益給了我這個功能:

function getUrlVars() { 
    var vars = {}; 
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {vars[key] = value}); 
    return vars; 
} 

因此獲得所謂的「激活」一個GET變量,你會簡單的調用這樣的功能:

getUrlVars()['activation'] 
+0

試過這個,但不能得到它的工作。我包括該函數,然後把它作爲我的URL:http://localhost/newproject/index.html?activation = hello但是當我嘗試獲取它顯示爲undefined的變量 – Kage 2013-02-28 10:42:33

+0

明白了。它會作爲一個對象返回 - 如果我這樣做,可以讀取它(警報)(getUrlVars()。activation); – Kage 2013-02-28 10:47:42

+0

我剛剛測試過它,它對我來說工作完美,你確定你正在調用該功能嗎? – George 2013-02-28 10:48:41

0

你應該使用AJAX登錄並在AJAX成功/錯誤回調中調用你的函數。

你可以做到這一點很容易與jQuery $.ajax()功能

http://api.jquery.com/jQuery.ajax/

+0

在我成功/錯誤代碼使用AJAX的所有時間回調,但我發送註冊人的PHP頁面只是一個基本的腳本,我正在將他們重新引導回站點。我的問題是如何從PHP重定向 – Kage 2013-02-28 10:44:27

+0

得到一條消息給我的代碼。最好的辦法是在URL中散列一條消息,並使用'window.location.hash'從javascript中獲取它。然後你可以根據你從哈希中得到的字符串調用你的函數。我認爲還有其他方法可以做到這一點。 – deadlock 2013-02-28 10:46:39

+0

謝謝,但試圖避免哈希。 F4r-20似乎對我有答案。感謝您的幫助 – Kage 2013-02-28 10:52:06

1

,因爲你有你的一個網頁應用程序的一切,你可以使用,對於activasion以及 - 具有激活鏈接去http://homesite.com?activation=<32characterkey>當你的應用程序檢測到GET參數時,使用AJAX調用PHP激活,並通知用戶結果。

+0

我喜歡這種方式的聲音。我會聽起來很愚蠢,但我不知道如何從URL中獲取我的JavaScript代碼中的變量。我知道這是一個基本問題,但這不是我所做過的。 – Kage 2013-02-28 10:35:41

+0

http://stackoverflow.com/questions/1403888/get-url-parameter-with-jquery – hexblot 2013-02-28 10:41:53

相關問題