2013-05-22 24 views
1

我知道GET變量和JavaScript有很多問題,但我不明白或讓他們工作。Javascript:保存方式來閱讀沒有PHP的GET

我有一個html formular,我需要用get變量的值填充一個字段。該網址有2個變量,這裏一個例子:

?pid=form.html&id=9869118 

本頁面只是一個HTML,所以我不能用PHP,但我想(首先)警報,id的值。

我已經在這裏和谷歌嘗試了很多不同版本的解決方案。

(例如:。 http://www.onlineaspect.com/2009/06/10/reading-get-variables-with-javascript/

請幫我瞭解它的正確執行和保存請注意,我沒有任何的jQuery要麼

這裏是我到目前爲止已經試過這是我form.html

var GETDATA = new Array(); 
var sGet = window.location.search; 
if (sGet) 
{ 
    sGet = sGet.substr(1); 
    var sNVPairs = sGet.split("&"); 
    for (var i = 0; i < sNVPairs.length; i++) 
    { 
     var sNV = sNVPairs[i].split("="); 
     var sName = sNV[0]; 
     var sValue = sNV[1]; 
     GETDATA[sName] = sValue; 
    } 
} 
if (GETDATA["id"] != undefined) { 
    document.forms.otayhteytta.id.value = GETDATA["id"]; 
    } 
+0

一個有用的文章:http://papermashup.com/read-url-get-variables-withjavascript/ – aug

+0

和「何時」你是否嘗試獲取'GET'變量?你有偶數或什麼? –

+0

感謝@aug我也試過這個,也沒有工作。 – Owl

回答

0

您可以使用純JavaScript函數,該函數像這樣:

function getParameterByName(name) { 
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); 
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
    results = regex.exec(location.search); 
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 

然後你就可以提醒「身份證」的,像這樣的值:

alert(getParameterByName('id')); 

您可以檢查此參數存在使用簡單的 '如果' 條件:

var id = getParameterByName('id'); 
if (id != "") { 
    alert(id); 
} 

來源:How can I get query string values in JavaScript?

+0

什麼是'name',這是傳遞給函數? –

+0

我沒有jquery – Owl

+0

'name'是您想要讀取的(GET)參數的名稱。 –

3

<script>標籤裏面看看這個優秀的JavaScript網址操作庫:

http://code.google.com/p/jsuri/

你可以做這樣的東西:

按名稱獲取查詢參數值

返回鍵

new Uri('?cat=1&amp;cat=2&amp;cat=3').getQueryParamValue('cat') // 1 

返回所有查詢參數的第一查詢參數值值的關鍵

new Uri('?cat=1&amp;cat=2&amp;cat=3').getQueryParamValues('cat') // [1, 2, 3] 
+0

謝謝,但我不想包括一個圖書館,應該沒有它或?我看過很多不同的答案,沒有圖書館 – Owl

+0

@Kaktus使用庫的一點是,它已經測試了一段時間,而你的自定義腳本還沒有。我認爲你應該認真考慮它,除非你在調試/維護一個側面解決方案方面感覺非常舒適。 –

+0

謝謝!我明白。我只是覺得整個圖書館在某種形式上是以某種方式「誇大其詞」的。但我認爲這個! thx – Owl

0

一種簡單的方式來獲得GET參數,而不使用庫:

var parameters = [] 
var parts = location.search.substr(1).split('&') 

for(var part in parts) { 
    var splitted = parts[part].split('=') 
    parameters[splitted[0]] = splitted[1] 
} 

現在parameters是關鍵中的參數名和值作爲值的數組。

這是一個簡單的解決方案,可能不適用於所有場景。

+0

謝謝!這也可能有用 – Owl