php - 选择选项时表单操作会更改

标签 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>

这是我的搜索(请注意,我只是更改了 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/

相关文章:

php - 在 PHP 中检索复杂类别结构下的产品时遇到问题

html - 如何在 HTML 中的 Points 中设置图像渲染?

PHP解析HTML标签

php - 尝试将 php 数组加载到打印图像的 echo 中

javascript - 在浏览器中修改XML文档

javascript - 如何访问 PostMan 中的 Request 对象

javascript - 在移动设备上默认使用 hover/active CSS

javascript - 当页面滚动到某个点时,如何使用 jQuery 更改文本?

php - CSS对齐来自循环帖子的网格元素

php - 您管有特定个性的视频