2015-04-05 50 views
0

在下面的表單中,我在選擇框中添加了url選項。不過,我想將其更改爲提交按鈕,因爲用戶將輸入用戶名並選擇下拉值。選擇時選擇框返回原始狀態?

 <section id="search"> 
 
      <form method="get" action="index.php" id="main-form"> 
 

 
       <div class="summoner_search"> 
 
        <input id="summoner" name="summoner" type="text" placeholder="Summoner"/> 
 
        <input id="region" name="region" type="hidden" value="<?php echo $region ?>"/> 
 
        <input id="form" name="form" type="hidden" value="true"/> 
 

 
        <select id="regions" onchange="location = this.options[this.selectedIndex].value;"> 
 
         <option value="index.php?region=br">BR</option> 
 
         <option value="index.php?region=eune">EUNE</option> 
 
         <option value="index.php?region=euw">EUW</option> 
 
         <option value="index.php?region=kr">KR</option> 
 
         <option value="index.php?region=lan">LAN</option> 
 
         <option value="index.php?region=las">LAS</option> 
 
         <option value="index.php?region=na">NA</option> 
 
         <option value="index.php?region=oce">OCE</option> 
 
         <option value="index.php?region=ru">RU</option> 
 
         <option value="index.php?region=tr">TR</option> 
 
        </select> 
 

 
        <input type="submit" value="Submit" style="display:none;"/>   
 
       </div> 
 
       <a href="index.php" alt="reset">Reset Values</a> 
 
      </form> 
 
     </section>

目前下拉刷新頁面和召喚師的名字,必須重新輸入。如果我可以把這個提交按鈕,所以價值將追加提交後我認爲它應該會更好,但我不知道如何做到這一點。

我的另一面查詢是否有人可以請我指出正確的方向來自動加載基於國家訪問的下拉值?

感謝 亞歷克斯

回答

0

如果你想避免你的選擇火災的onchange事件後再次進入召喚值,那麼你可以召喚者輸入的值追加到被稱爲在onchange事件的URL ,類似於下面的代碼:

<section id="search"> 
    <form method="get" action="index.php" id="main-form"> 
     <div class="summoner_search"> 
      <input id="summoner" name="summoner" type="text" 
        placeholder="Summoner" 
        value="<?php echo htmlentities($_GET['summoner'], ENT_QUOTES); ?>" 
        /> 
      <input id="region" name="region" type="hidden" 
        value="<?php echo htmlentities($region, ENT_QUOTES); ?>" 
        /> 
      <input id="form" name="form" type="hidden" value="true"/> 

      <script> 
       function load(select) { 
        var summoner = document.getElementById('summoner'); 
        var url = select.options[select.selectedIndex].value; 
        if (summoner.value) { 
         url += '&' + encodeURIComponent(summoner.value); 
        } 
        window.location.href = url; 
       } 
      </script> 
      <select id="regions" onchange="load(this);"> 
       <option value="index.php?region=br">BR</option> 
       <option value="index.php?region=eune">EUNE</option> 
       <option value="index.php?region=euw">EUW</option> 
       <option value="index.php?region=kr">KR</option> 
       <option value="index.php?region=lan">LAN</option> 
       <option value="index.php?region=las">LAS</option> 
       <option value="index.php?region=na">NA</option> 
       <option value="index.php?region=oce">OCE</option> 
       <option value="index.php?region=ru">RU</option> 
       <option value="index.php?region=tr">TR</option> 
      </select> 

      <input type="submit" value="Submit" style="display:none;"/> 

     <a href="index.php" alt="reset">Reset Values</a> 
     </div> 
    </form> 
</section> 

如果我可以把這個給提交按鈕,因此該值將追加提交後我覺得應該是更好,但我不知道該怎麼做。

您的意思是說,當點擊提交按鈕時,你想發送召喚者參數(你的召喚者輸入值)和區域參數(你的區域選擇值)嗎? 然後,你可以簡單地改變你的選擇:

<select name="region"> 
    <option value="br">BR</option> 
    <option value="eune">EUNE</option> 
    .... 
</select> 

那麼你的index.php將收到兩個召喚師,並在發送形式的區域價值。

我的另一面查詢是否可以請有人指出我正確的方向來自動加載下拉值基於哪個國家正在訪問?

你需要一個地理定位庫。使用它從他或她的IP地址中檢測訪問者的區域。然後從您的可用區域集合中挑選最接近訪問者區域的區域,並將選中的相關選項標記爲selected