2017-08-05 85 views
1

我有一個網站,我很少有控制權。下拉菜單中選擇選項基於URL paramater

預設形式已經選擇選項我想設定不同。代碼

例子是:

<form id="myForm" action="https://secure.domain.net/account/order" method="post"> 
<table><tbody><tr class="paperTR tr_class_paper"><td class="paperTD fiTitle fiItem"> 
<div>Paper</div> 
<select id="paper" name="paper" onchange="EC_LithoCalc.updateForm()"> 
<option value="1">Option1</option> 
<option value="2">Option2</option> 
<option value="3">Option3</option> 
<option value="4">Option4</option> 
</select> 
</td></tr></tr></tbody></table> 
</form> 

我試過的例子有很多變種: domain.com/page?paper=1

,但似乎沒有爲我工作。

我發現的一切都是討論javascript或jquery,但我沒有任何這些知識。雖然,我知道編碼應該以<標籤開始,我看到的內容只是看起來像內部。

我很困惑。

有任何人能幫助我?

我一直在這一切的一天,我希望得到任何幫助。

謝謝。

回答

1

您將paper = 1設置爲查詢字符串參數,但這不會更改選擇控件的值。您需要提取查詢字符串參數的值,然後相應地設置選擇控件。

用於JavaScript中檢索查詢字符串參數,你可以參考標記的答案對這個職位How can I get query string values in JavaScript?

一旦你在查詢字符串參數傳遞的值,你可以設置在JavaScript中選擇控制如下:

document.getElementById('paper').value = paperValue; 

其中paperValue是保存傳遞給頁面的值的變量。文檔準備就緒時,請確保加載/執行用於設置所選值的功能。

+0

感謝您的評論Maximo,但我不知道我在看什麼或如何實施它。你能否詳細說明我沒有JavaScript的知識? – Lost305

+0

我將標記的答案放在筆記中,加上您編寫的代碼並將其命名爲script.js。我嘗試了以下網址?paper = 251?paperValue = 251?value = 251但沒有任何效果。 – Lost305

+0

此外,它顯示此...未捕獲ReferenceError:紙張值未定義 – Lost305

1

您已額外給出</tr>應刪除。

你需要使用提交按鈕提交該表格。你完整的代碼應該是這樣的

<form id="myForm" action="https://secure.domain.net/account/order" method="post"> 
    <table> 
    <tbody> 
    <tr class="paperTR tr_class_paper"> 
    <td class="paperTD fiTitle fiItem"> 
     <div>Paper</div> 
     <select id="paper" name="paper" onchange="EC_LithoCalc.updateForm()"> 
     <option value="1">Option1</option> 
     <option value="2">Option2</option> 
     <option value="3">Option3</option> 
     <option value="4">Option4</option> 
     </select> 
    </td> 
    </tr> 
    </tbody> 
    </table> 
    <input type="submit" value="Submit"> 
</form> 
1

如果你沒有使用像ASP或PHP,使這項工作要麼是使用JavaScript或jQuery的唯一的出路任何服務器語言。它可以設置爲在頁面完全加載後運行。

<script> 
    if (document.readyState == 'complete') { 
     var item = document.getElementById('paper').value; 
     var items = document.getElementById('paper').options; 
     for (var x = 0; x < items.length; x++) { 
      if (items[x].value == item) { 
       items[x].setAttribute('selected', true); 
      } 
     } 
    } else { 
     items[x].removeAttributes('selected'); 
    } 
</script> 

更新1:

看來你真的打算在僅僅有默認選擇一個選項,因此只需添加'selected'參數所需的選項標籤。

<option value="default" selected="selected">Default value</option> 

如果任何其他選項標籤具有相同的參數,請將其從中刪除。

+0

謝謝,我將代碼放入網頁。當我打電話給domain.com?paper=251時,它不會更改表格。我究竟做錯了什麼? – Lost305

+0

您的表單使用Post方法,而不是Get。此外,更改選擇標記中的選定值僅適用於編輯視圖/頁面,因爲它需要數據庫或其他數據源來了解當時記錄的選項。長話短說,只有/如果你有一個使用的服務器語言,這隻會工作。如果這是一個簡單的HTML頁面,只需添加'選擇= "在要被默認選擇的選項標籤選擇"'。或者將表單標籤中的操作地址更改爲本頁,並添加我放入答案的腳本。 – Tiramonium

+1

我不確定如何確定網站是否使用POST和GET,但由於存在數據庫,我將假設它是GET。該網站使用PHP,但我無法訪問PHP文件或數據庫。我只是提供了一個後端表單來對HTML進行更改,包括HEAD。 – Lost305

相關問題