2011-07-28 39 views
0

我有2頁,一個叫details.page和其他maps.page在頁面之間傳遞值。我究竟做錯了什麼?

在第一頁,我有一個聲明瞭一個搜索輸入像這樣:

<form method="get" id="form-search" data-ajax="true" action="maps.page"> 
      <input type="search" name="search" id="search" value=""/> 
     </form> 

在我的第二頁,maps.page,我必須聲明,像這樣一個:

<form action="maps.page"> 
     <input type="search" name="search" id="search-field" value=""/> 
     </form> 

現在,我是假設,當我鍵入從我的第一個頁面在搜索欄中東西並回車,在maps.page搜索欄會填入之前輸入的值。

我正確重定向,但搜索欄爲空。

我在做什麼錯?

在此先感謝您的幫助。

編輯:另外,我看到的,因爲它似乎是工作的URL,因爲我可以看到我在尋找這樣的網址:/maps.page?search=something

+0

我認爲你需要閱讀客戶端和服務器端腳本。 – Jack

回答

1

如何在不使用後端腳本的情況下執行此操作,有幾個選項。

1)您可以將表單方法設置爲GET,以便變量在地址欄中傳遞,然後使用類似下面的腳本在另一端抓住它們(這實際上是讀取地址,然後解析它變量)。之後,您可以將該值放入您的輸入字段。

var getVars = new Array(); 
var locvartemp = (window.location.href.indexOf("?") + 1) ? window.location.href.substr(window.location.href.indexOf("?") + 1) : ""; 
locvartemp = locvartemp.split("&"); 
for(var x = 0; x < locvartemp.length; x++) { 
    var lvTempVar = locvartemp[x].split("="); 
    getVars[ unescape(lvTempVar[0]) ] = unescape(lvTempVar[1]); 
} 

2)您可以使用jQuery的cookie的插件值作爲cookie設置提交表單之前,然後讀取它的另一面,並把它設置爲你的輸入字段。

jQuery.cookie("myCookie", document.formName.myFieldName.value); 

讓我知道你是否需要更多的細節。

+0

這就是我正在尋找的。非常感謝你。 – JFFF

+0

:)很高興幫助 – Maxx

1

值爲不會自動填充。您需要從服務器端打印它。

<form action="maps.page"> 
     <input type="search" name="search" id="search-field" value="<insert value>"/> 
    </form> 
+0

那麼這就是問題所在,我想將我在URL中看到的值傳遞給文本框。 – JFFF

+1

使用會話存儲值,然後在下一頁使用會話讀取值並設置您的搜索框的值屬性。它不能自動填充。 – Ehtesham

+0

除非您希望數據保留,否則請勿使用會話。這種方式存在一堆競爭條件。該值已經在第二頁的查詢字符串中,直接從此處讀取。 – Quentin

1

我是假設,當我鍵入從我的第一個頁面在搜索欄中東西並回車,在maps.page搜索欄將與先前輸入的值填充。

這就是你做錯了什麼。

如果您設置了value屬性(或者在將元素添加到DOM後設置了DOM值屬性),則只會填充該字段。

這通常使用服務器端進程完成。具體取決於您使用的語言來創建該過程,但請注意XSS,因爲包括未經過濾的,未轉義的用戶輸入將會產生安全漏洞。