2012-02-03 70 views
1

因此,我一直在互聯網上尋找一種我認爲是普遍和容易的解決方案,但似乎我瀏覽過的所有鏈接都不是我所需要的,或者他們只是釉上了零件我需要並想要了解。如何使用jquery autosuggest重定向到另一個url?

我正在開發一個網站,我希望有一個字段,用戶可以鍵入一個狀態,它會自動提示可能的狀態,當用戶選擇一個狀態時,它會將頁面重定向到另一個網址。所以:如果他們選擇「阿拉斯加,阿拉斯加」,他們被定向到「http://.../states/alaska」

從我搜索的所有,jquery UI autosuggest remote source,似乎是最接近什麼我需要。我喜歡我不需要通過數據庫,這些值在「search.php」文件中。

在的search.php文件中的值插入爲:

$q = strtolower($_GET["term"]); 
if (!$q) return; 
$items = array(
"Great Bittern"=>"Botaurus stellaris", 
"Little Grebe"=>"Tachybaptus ruficollis", 
"Black-necked Grebe"=>"Podiceps nigricollis", 
"Little Bittern"=>"Ixobrychus minutus", 
... 

我測試過,我可以在這裏將值更改爲:

$q = strtolower($_GET["term"]); 
if (!$q) return; 
$items = array(
"Alabama, AL"=>"http://.../states/alabama", 
"Alaksa, AK"=>"http://.../states/alaska", 
"Arizona, AZ"=>"http://.../states/arizona", 
... 

在HTML代碼是:

$(function() { 
     function log(message) { 
      $("<div/>").text(message).prependTo("#log"); 
      $("#log").scrollTop(0); 
     } 

     $("#birds").autocomplete({ 
      source: "search.php", 
      minLength: 2, 
      select: function(event, ui) { 
       log(ui.item ? 
        "Selected: " + ui.item.value + " aka " + ui.item.id : 
        "Nothing selected, input was " + this.value); 
      } 
     }); 
    }); 

選擇時,我並不需要它顯示一個日誌,我怎麼格式化該讓頁面重定向或當用戶點擊提交按鈕?

+0

由它看起來是那樣的像有很多需要相關文件爲了使這個工作起作用,所以如果任何人有更小的東西,請告訴。 – lbweb 2012-02-03 08:08:17

回答

1

你需要使用這些

window.location.href = "new link"; 

window.location.replace("new link"); 

一個也許這樣

select: function(event, ui) { 
       log(ui.item ? 
        window.location.href = ui.item.value : 
        "Nothing selected, input was " + this.value); 
      } 
+0

那麼工作。謝謝。現在我正在將它們組合到一起,我意識到它需要9個鏈接文件和41kb的內容才能使整個事情走到一起。似乎有點極端。有沒有人有任何替代品? – lbweb 2012-02-03 08:44:33

+0

如果您有9種不同的答案,您可以將它們放入數據庫中,然後在您的頁面中創建一個div,根據用戶選擇加載結果。這需要一些Ajax。 – Mike 2012-02-03 08:54:37

+0

我在看那些類型的腳本。我的問題是,他們都只提供一個建議文本和ID的價值。我不需要ID,我需要建議文本和URL字段。問題是我根本不知道MySQL/JSON/AJAX語法,因此弄清楚如何修改對我來說是不可能的,而且沒有初學者的腳本文檔。 – lbweb 2012-02-03 17:00:22

相關問題