当用户搜索并选择其中一个部门时,必须将其带到该特定页面。因此,如果选择了音乐,它必须将它们带到音乐页面或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>
这是我的搜索(注意我只更改了音乐的价值以确定它是否有效)
<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>
有人可以告诉我我做错了什么
非常感谢大家到目前为止提供的帮助,并且将会有更多的帮助
答案 0 :(得分:2)
您只能使用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');
}
}
答案 1 :(得分:1)
有很多方法可以做到这一点。如果您对PHP更熟悉,那么请将表单提交到基于“SearchBy”值的php页面,将该人重定向到正确的位置。
示例:
if ($_GET['SearchBy'] == Music){
header( 'Location: http://www.yoursite.com/music.html' ) ;
}
你可能想要使用switch case语句而不是if,但你应该从中得到这个想法。
如果您想尝试Javascript,可以使用“OnChange”功能并将选择转换为有时称为跳转菜单的选项。如果在这里找到了一个例子:
http://www.web-source.net/javascript_redirect_box.htm
但实际上,这是一个如何运作的想法:
<SCRIPT language="JavaScript">
function goto(form) {
var index=form.select.selectedIndex
if (form.select.options[index].value != "All") {
location=form.select.options[index].value;}
}
</SCRIPT>
<SELECT name="SearchBy" onChange="goto(this.form)">
<OPTION value="All" selected="selected">All Departments</OPTION >
<OPTION value="http://www.yoursite.com/music.html">Music</OPTION >
</SELECT>
我希望这会让你朝着正确的方向前进。尝试一下。
答案 2 :(得分:1)
如果你希望他们必须点击搜索按钮,那么使用PHP比使用JavaScript更容易(并且甚至可以在非JS浏览器上工作)。
在Searchdefault.php中,根据$ _GET ['SearchBy']的值执行条件(例如switch或if语句)并发出适当的header()调用以触发浏览器重定向。