在下面的表格中,我在选择框中添加了附加到网址的选项。但是我想将此更改为提交按钮,因为用户将输入用户名并选择下拉值。
<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 :(得分:0)
如果你想避免在select fires的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
。