簡體   English   中英

將變量從一個HTML頁面傳遞到另一個HTML頁面的最佳做法是什么?

[英]What is the best practice for passing variables from one HTML page to another?

我對Web應用程序編程比較陌生,所以我希望這個問題對每個人來說都不是太基礎。

我創建了一個帶有FORM的HTML頁面,其中包含一個dojox數據網格(v1.2),其中包含不同雜貨項目的描述行。 在用戶選擇他感興趣的項目后,他將點擊“提交”按鈕。

此時,我可以使用javascript函數將項目ID號存儲為javascript變量但我不知道如何將此ID傳遞到后續HTML頁面。

我應該只將ID作為URL查詢字符串參數傳遞嗎? 還有其他更好的方法嗎?

編輯:整個過程就像一個購物車。 用戶將從網格中選擇項目,然后在下一頁上,用戶將填寫一些詳細信息,然后結帳。

我還應該提一下,我正在使用grails,所以這發生在GSP頁面中,但目前它只包含HTML。

你可以使用一個隱藏的輸入字段; 作為表單的一部分傳輸。

<html>
  <head>
  </head>
  <body>
    <script type="text/javascript">
      function updateSelectedItemId() {
        document.myForm.selectedItemId.value = 2;
        alert(document.myForm.selectedItemId.value);

       // For you this would place the selected item id in the hidden
       // field in stead of 2, and submit the form in stead of alert
      }
    </script>

    Your grid comes here; it need not be in the form

    <form name="myForm">
      <input type="hidden" name="selectedItemId" value="XXX">
      The submit button must be in the form.
      <input type="button" value="changeSelectedItem" onClick="updateSelectedItemId()">
    </form>
  </body>
</html>

這是一個很好的,但更好的是使用一些腳本語言,如JSP,PHP,ASP ....你可以使用簡單的POST和GET方法。

最好的方法(imho)是將它包含在URL中

HREF = “HTTP://NewPage.htm VAR =值”;

encodeUriComponent是一個字符串值

使用POST將變量發送到另一個頁面的一種方法是將指向后續頁面的鏈接作為action屬性為目標頁面的表單上的提交輸入。 對於您擁有的每個變量,您可以在此表單中使用屬性類型“隱藏”的輸入,僅使按鈕可見。

另一種選擇是使用PHP之類的東西在頁面上動態生成鏈接,您基本上可以重新填充當前的GET查詢。

最后,您始終可以將此信息存儲在PHP $ _SESSION數組中,而不必擔心通過站點導航不斷傳遞這些變量。

您的選擇將取決於您希望保留相同變量的導航選項數量。 它還取決於您對后端的安全程度以及您希望向高級網絡用戶披露的金額。

如果您只需要在后續頁面上使用ID,則可以將id作為查詢字符串參數傳遞。

但有時你需要傳遞更多信息並將各種參數傳遞給不同的頁面,並且不得不為不同的頁面維護不同的參數集可能會有點毛茸茸。 在這種情況下,我建議您在表單上保留一個隱藏字段,並創建一個存儲每個參數的參數對象。 使用JSON序列化參數對象並將其存儲在隱藏字段中。 將表單發回服務器。 加載下一頁時,反序列化對象並檢索所需的值。

假設您僅限於使用html頁面,我認為最好的方法是將查詢字符串上的id傳遞給下一頁。 將該值從下一頁的查詢字符串中拉回來相對容易。 如果你需要更加隱秘地傳遞變量(或者你需要變量持久存在多個頁面),你也可以設置一個cookie並在下一頁上檢索它。

由於您嘗試在Grails應用程序中執行此操作,因此您可以選擇使用Flash范圍。 如果您想直接從一個HTML頁面轉到下一個HTML頁面,因為范圍將在控制器中定義,這可能沒有任何意義。 如果您不需要在請求之間進行任何類型的處理,我建議使用隱藏的表單字段來保持簡單。

http://grails.org/Controllers+-+Controller+Scopes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM