2012-06-07 160 views
1

我想根據第一個選擇填充第二個下拉框。 我做了我的研究,發現大部分提供的建議/解決方案都預先加載了下拉值。jQuery:基於上一個下拉選項的下拉選項

我想訪問數據庫並獲取值。我能夠用Javascript解決這個問題,但是我發現Jquery解決方案會很有效,因爲我在數據庫中有很多項目。

所以這裏是我到目前爲止。關於如何使用MySQL查詢從數據庫檢索數據並自動填充的建議?

<script type="text/javascript"> 
jQuery(document).ready(function($) { 
    $(".countryDropDown").change(function() { 
     var country = $(this).val(); 
     function fillStateDropDown(countryStateOption) { 
      $.each(countryStateOption, function(val, text) { 
       $('.stateDropDown').append(
       $('<option></option>').val(val).html(text)); 
      }); 
     } 
     function clearStateDropDown() { 
      $('.stateDropDown option:gt(0)').remove(); 
     } 
     if (country == 'INDIA') { 
      clearStateDropDown(); 
      var indiaStateOption = { 
       RAJASTHAN: 'Rajasthan', 
       GUJRAT: 'Gujrat', 
       MAHARASTRA: 'Maharastra' 
      }; 
      fillStateDropDown(indiaStateOption); 
     } 
     else if (country == 'UK') { 
      clearStateDropDown(); 
      var ukStateOption = { 
       LONDON: 'London', 
       LIVERPOOL: 'Liverpool', 
       DERBY: 'Derby' 
      }; 
      fillStateDropDown(ukStateOption); 
     } 
     else if (country == 'USA') { 
      clearStateDropDown(); 
      var usaStateOption = { 
       CALIFORNIA: 'California', 
       TEXAS: 'Texas', 
       NEWYORK: 'New York' 
      }; 
      fillStateDropDown(usaStateOption); 
     } 
     var stateOptions = { 
      val1: 'text1', 
      val2: 'text2' 
     }; 
    }); 
});​ 
</script> 

回答

0

我正在開發一個項目,實現您在此提及的確切功能。我的實現有點長,向你展示,所以我會告訴你,你需要AJAX和JSON傳遞值給PHP,它將處理你的項目的所有數據庫部分。

想想MVC架構。您的視圖將是包含HTML/Javascript的.html文件,與包含JQuery/AJAX/JSON的.js文件一起使用。

從您的.js文件中,您將使用AJAX調用您的控制器,a.k.a. .php文件,它應該只包含PHP函數。這些將處理您提供的所有傳入數據,在您的情況下,您將使用JQuery獲取的下拉菜單的ID和從下拉列表中選擇的VALUE。

從您的Controller文件中,您將調用您的Model中的函數,另一個.php文件包含將根據您的需要處理SQL查詢的函數。

聽起來很多,如果你不熟悉MVC風格的編碼,但我向你保證實現起來並不困難,你只需要確保你的AJAX/JSON/JQuery正在做什麼他們應該這樣做,然後PHP應該處理剩下的事情。

謝天謝地,有很多關於所謂的「使用MVC使用JQuery Mobile」。開始進入:http://jquerymobile.com/resources/並閱讀這些項目。

祝你好運!

+0

非常感謝您的意見。我對MVC的知識有限,並且與jQuery一起初學者。我剛從這周開始。我會盡量多研究並使用你的建議。 – Naveen

+0

當然,如果你仍然有問題只是讓我知道,我自己已經經歷了學習曲線,所以我涉及到你面前的任務。上士:說謝謝的最好方法是投票或接受答案:)再次祝你好運! – AGE

相關問題