当用户搜索并选择其中一个部门时,它必须将他们带到该特定页面。因此,如果选择了音乐,则必须将他们带到音乐页面或 DVD 页面,但只有在他们单击搜索按钮以提交搜索时。
这是我的表格
<div id="form">
<form id="searchbarid" name="Searchbar" action="Searchdefault.php" method="get">
<center>
Search
<input name="Search" type="text" dir="ltr" lang="en" size="50" />
In <select name="SearchBy" dir="ltr" lang="en" id="searchbyid">
<option value="All" selected="selected">All Departments</option>
<option value="Music">Music</option>
<option value="DVD">DVD's</option>
<option value="Bluray">Bluray</option>
</select>
<input type='submit' name="Submit" value="Search"/>
</center>
</form>
不幸的是,我读过这可以用 JavaScript 完成,但我对 JavaScript 完全一无所知。如果 JavaScript 是执行此操作的最佳方式,请向我解释一下。
如果可以用 PHP 来完成我会更高兴,因为我对 PHP 了解更多。
编辑:
好的,所以我尝试了 javascript,但它没有用
这是在我的文档中。
<SCRIPT language="JavaScript">
function goto(form) {
var index=form.select.selectedIndex
if (form.select.options[index].value != "0") {
location=form.select.options[index].value;}
}
</SCRIPT>
这是我的搜索(请注意,我只是更改了 Music 的值以查看它是否有效)
<div id="form">
<form name="Searchbar" >
<center>
Search
<input name="Search" type="text" dir="ltr" lang="en" size="50" />
In <select name="SearchBy" dir="ltr" lang="en" id="searchbyid" onchange="goto(this.form)" >
<option value="All" selected="selected">All Departments</option>
<option value="/Echos Online/Music.php">Music</option>
<option value="DVD">DVD's</option>
<option value="Bluray">Bluray</option>
</select>
<input type='submit' name="Submit" value="Search" />
</center>
</form>
</div>
谁能指出我做错了什么
非常感谢迄今为止提供帮助的所有人,我们将不胜感激
最佳答案
您只能使用 javascript 执行此操作。您可以使用 onchange 方法在您选择选择列表中的一项时触发操作。此操作将提交表单。
使用:
<select name="SearchBy" dir="ltr" lang="en" id="searchbyid" onchange="this.form.submit()">
这是提交表单的最简单方法。
要重定向到好的页面,您需要在 Searchdefault.php 脚本的顶部进行重定向。你可以这样做
<?php
if(isset($_GET['SearchBy'])) {
switch($_GET['SearchBy']) {
case 'Music':
header('Location: URL_OF_MUSIC_PAGE');
break;
case 'DVD':
header('Location: URL_OF_DVD_PAGE');
break;
//...
default:
header('Location: URL_OF_A_DEFAULT_PAGE');
}
}
关于php - 选择选项时表单操作会更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8938464/