2012-01-20 33 views
1

當用戶搜索並選擇其中一個部門時,必須將其轉到該特定頁面。所以如果選擇了音樂,它必須將它們帶到音樂頁面或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> 

有人能請出PIONT我做錯了什麼

很多感謝大家到目前爲止的幫助和任何更多的幫助將大大apprieciated

回答

1

有一些方法可以做到這一點。如果您對PHP更加熟悉,那麼請將表單提交給基於「SearchBy」值的php頁面,將該人員重定向到正確的位置。

例如:

if ($_GET['SearchBy'] == Music){ 

    header('Location: http://www.yoursite.com/music.html') ; 

} 

你可能想使用一個開關case語句,而不是如果,但你應該從中得到的想法。

如果您想嘗試使用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> 

我希望向您發送了正確的方向。試試看。

+0

什麼會更快,JavaScript或PHP?我在想JavaScript,因爲它不會進入一個頁面,然後重定向到另一個像PHP。 – Mark

+0

是的,我個人更喜歡在JS上做它。 –

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

如果你想想要他們必須點擊搜索按鈕,那麼這可能比使用PHP更容易處理(即使在非JS瀏覽器上也可以工作)。

在Searchdefault.php中,根據$ _GET ['SearchBy']的值做一個條件(例如switch或if語句)併發出適當的header()調用來觸發瀏覽器重定向。

相關問題