2016-06-24 33 views
-1

如果您運行代碼,您將看到一個包含多種不同語言的下拉菜單。如果您選擇語言並點擊提交,則下拉菜單將自動回到列表頂部,而不是停留在所選內容上。所以我試圖做的是讓語言欄保持這種語言,你點擊提交按鈕後。語言下拉菜單更改鏈接,但不會保留在所選語言中

<body> 
 

 
    <header> 
 

 
    <div id="country-select"> 
 
     <form action="" method="get"> 
 
     <select id="locale" name="locale"> 
 
\t <option value="en_US" title='1'>English(US)</option> 
 
      <option value="en_GB" title='2'>English(UK)</option> 
 
      <option value="bg_BG" title='3'>Bulgarian</option> 
 
      <option value="cs_CS" title='4'>Czech</option> 
 
      <option value="da_DK" title='5'>Danish</option> 
 
      <option value="de_DE" title='6'>German</option> 
 
      <option value="ek_GR" title='7'>Greek</option> 
 
      <option value="es_ES" title='8'>Spanish</option> 
 
      <option value="et_ET" title='9'>Estonian</option> 
 
      <option value="fi_FI" title='10'>Finnish</option> 
 
      <option value="fr_FR" title='11'>French</option> 
 
      <option value="hu_HU" title='12'>Hungarian</option> 
 
      <option value="it_IT" title='13'>Italian</option> 
 
      <option value="lt_LT" title='14'>Lithuanian</option> 
 
      <option value="lv_LV" title='15'>Latvian</option> 
 
      <option value="nl_NL" title='16'>Dutch</option> 
 
      <option value="no_NO" title='17'>Norwegian</option> 
 
      <option value="pl_PL" title='18'>Polish</option> 
 
      <option value="pt_PT" title='19'>Portugese</option> 
 
      <option value="ro_RO" title='20'>Romanian</option> 
 
      <option value="sk_SK" title='21'>Slovak</option> 
 
      <option value="sl_SL" title='22'>Slovenian</option> 
 
      <option value="sv_SE" title='23'>Swedish</option> 
 
     </select> 
 
     <input value="Select" type="submit" /> 
 
     </form> 
 
    </div> 
 
    </header> 
 
    <script> 
 

 

 
     // creates the page dynamically 
 
     function GetSelectedItem() { 
 
     var option = document.getElementById("locale").value; 
 
     } 
 

 
    </script> 
 
</body>

+0

'提交'按鈕導致表單發佈到服務器。如果你想在'select'中預先選擇一個項目,那麼在處理表單帖子的服務器端代碼中執行。你甚至使用什麼服務器端語言?你在那個代碼中使用表單發帖做什麼? – David

+0

@David謝謝你回答David。所以它不可能用Javascript?我可能不得不使用PHP? – Giorgio

+0

* JavaScript無法實現*?你還沒有指定你想要做什麼。您只需將一個簡單的表單發送回服務器。它不*做任何事情。 – David

回答

0

您需要實現爲了做到這一點,你想要的方式多了一些代碼段。現在,提交沒有任何作用。下次您的頁面加載時,選擇框默認爲頂部選項,因爲它不記得上次選擇了哪個選項!通過表單提交,您需要使用工具與數據庫進行通信以保存選擇內容。

我的建議是使用PHP寫入文件或與SQL數據庫通信。我不確定這是什麼應用程序,所以我很難提出最佳選擇。

使用PHP,形式方法將需要從 「取」 到 「POST」 改爲:

<form action="submit.php" method="POST"> 

以下submit.php腳本將類似於此:

<?php 
    $selection = $_POST['locale']; 
    //do something to save the selection here 
?> 

更多信息將數據保存到SQL可在此處獲得:http://www.w3schools.com/php/php_mysql_insert.asp

+0

準確地說我的問題@Confiqure非常感謝!所以我將不得不使用PHP,但我必須建立一個數據庫?這個工具欄/下拉菜單所做的是切換頁面的語言,但我現在只是製作工具欄 – Giorgio

+0

如果您的網站有多個用戶,我會建議製作一個SQL數據庫,然後使用PHP與數據庫並保存用戶的選擇。然後,您需要通過添加一點PHP來調整HTML表單,以檢測SQL中是否已保存一個選項,如果有,請將默認選項保存爲 – Confiqure

+0

非常感謝! – Giorgio

0
<?php 
if($_SERVER['REQUEST_METHOD'] == 'GET'){ 
    if(!empty($_GET['locale'])){ 
    $languange = $_GET['locale']; 
    } 
} 
?> 
<body> 

    <header> 

    <div id="country-select"> 
     <form action="thispage.php" method="get"> 
     <select id="locale" name="locale"> 
     <option <?php if($language == "en_US")? echo "selected" ?> value="en_US" title='1'>English(US)</option> 

     </select> 
     <input value="Select" type="submit" /> 
     </form> 
    </div> 
    </header> 

基本上把每個選項的PHP片段,當你提交它將保持值

+0

非常感謝Pyrox,我會嘗試我可能做的任何方法使這項工作 – Giorgio