选择选项时,表单操作会更改

时间:2012-01-20 08:16:38

标签: php javascript html

当用户搜索并选择其中一个部门时,必须将其带到该特定页面。因此,如果选择了音乐,它必须将它们带到音乐页面或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>

有人可以告诉我我做错了什么

非常感谢大家到目前为止提供的帮助,并且将会有更多的帮助

3 个答案:

答案 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()调用以触发浏览器重定向。