2013-12-11 51 views
0

我試圖做cakePhp + jQuery第一個與省,第二地點,在那個地方的第三學校3選擇。這裏是我的蛋糕代碼(到目前爲止):三個選擇基於以前的jquery

  echo $this->Form->input('proviences', array(
       'type' => 'select', 
       'empty' => true, 
       'options' => $proviences, 
       'label' => 'Province', 
       'class' => 'proviences', 
       'before' => '<div style="float:left;width:180px"', 
       'after' => "</div>" 
      )); 

      echo $this->Form->input('localities', array(
       'type' => 'select', 
       'empty' => true, 
       'options' => $localities, 
       'label' => 'City', 
       'class' => 'localities', 
       'before' => '<div style="float:left;width:180px"', 
       'after' => "</div>" 
      )); 
      $schoolList = array(); 
      foreach($schools as $value) { 
       $schoolsList[]=$value['name']; 
      } 
      echo $this->Form->input('school_id', array(
       'label' => 'Szkoła', 
       'options' => $schoolsList, 
       'empty' => true, 
       'before' => '<div style="float:left;width:240px"', 
       'after' => "</div>", 
       'onchange' => "submit();", 
      )); 

在$學校,我有一個列表尋找這樣

array(
    id1 => array(
     'name' => 'some_name', 
     'province' => 'some_province', 
     'locality' => 'some_city' 
     ) 
) 

,並以此來獲得省,地區名單以及學校名稱 我試圖使用這個,但不能得到它的工作;/ Filter three select boxes based on previous selections 有沒有辦法在沒有ajax的jQuery中做到這一點?

+0

你能做到不使用AJAX,但你需要在客戶端的'schools'陣列,並創建一個基於上/編輯選項客戶端也是如此。 – lordvlad

回答

1

您可以在不使用ajax的情況下做到這一點,但爲此,您需要客戶端的學校數組,並在客戶端創建/編輯選項。

這裏是一個工作fiddle。 (匆匆扔在一起,但你明白了)。不過,您需要將schools數組轉換爲js。你既可以使用AJAX爲,或者把它作爲JSON在頁面上:

echo 'var schools = JSON.parse('.json_encode($schools).'); 

你要想想在哪裏放置,也因此這個變量不會泄漏到了全球範圍。你可以把它放在jQuery的關閉,例如:

echo '(function($){'; 
echo 'var schools = JSON.parse('.json_encode($schools).'); 

// now the javascript from the fiddle... 

echo '}(jQuery))'; 
+0

謝謝你,正如你所說我得到一個想法,現在它是作品4我;) – Namiastka