2010-08-16 80 views
1

假設我有這樣的陣列下拉列表:填充從陣列使用JQuery

Array(
     [0] => Array(
        [Brand] => 'Toyota', 
        [Model] => 'Camry', 
        [Color] => 'Red', 
        [Year] => 2002 
    ) 
     [1] => Array(
        [brand] => 'Nissan', 
        [Model] => 'Skyline', 
        [Color] => 'White', 
        [Year] => 2005 
    ) 
     [2] => Array(
        [Brand] => 'Honda', 
        [Model] => 'Civic', 
        [Color] => 'Green', 
        [Year] => 2000 
    )) 

,然後內部下拉列表中我有「鑰匙」品牌+型號+顏色+年

問題:我如何使用JQuery(AJAX)填充另一個下拉列表,並在單擊一個鍵時使用「值」?

例子:當我點擊模式,我想填充另一個下拉列表的價值觀凱美瑞 + 天際線 + 公民,如果我點擊顏色,與pupulates + 白色 + 綠色

乾杯!

回答

2

如果你的數組是cars[],並且你的選擇框分別具有「sourceBox」和「targetBox」的ID,那麼下面的代碼將獲得#sourceBox中所選項目的文本並將#targetBox的所有等價值陣列。因此,在#sourceBox中選擇「顏色」將使用「紅色」,「白色」和「綠色」來填充#targetBox。

$(document).ready(function(){ 
     $('#sourceBox').change(function(){ 
     var options = ""; 
     for (var i = 0; i < cars.length; i++){ 
      options += '<option>' 
       + cars[i][$('#sourceBox option:selected').text()] 
       + '</option>'; 
     } 
     $('#targetBox').html(options); 
     }); 
    }); 
+0

我忘了提及該數組是在PHP中,而不是Java腳本。 如何在PHP腳本中將一個數組解析爲Java腳本中的一個數組? – Derick 2010-08-16 12:03:03

+0

@Dick檢查我的答案。您可以輕鬆地將PHP數組解析爲JS。只需在標籤內使用標籤。 – 2010-08-16 12:09:10

0

只是一個代碼很一般的作品。你應該更具體(顯示你想從該PHP數組創建的HTML)。反正它在這裏。這將只是用你的PHP數組創建JS數組。這應該很容易與那些工作:

<?php 

$brands = array(); 
$models = array(); 
$colors = array(); 
$years = array(); 
foreach ($arr as $k=>$v) { 
    switch ($k) { 
     case 'Brand': 
      $brands[] = $v; 
      break; 
     case 'Model': 
      $models[] = $v; 
      break; 
     case 'Color': 
      $colors[] = $v; 
      break; 
     case 'Years': 
      $years[] = $v; 
      break; 
    } 
} 

?> 

<script type="text/javascript"> 
    //<!-- 
$(document).ready(function() { 

    var brands = new Array(<?php echo count($brands); ?>); 
    var models = new Array(<?php echo count($models); ?>); 
    var colors = new Array(<?php echo count($colors); ?>); 
    var years = new Array(<?php echo count($years); ?>); 

<?php 

$i = 0; 
foreach ($brands as $v) { 
    echo 'brands[' . $i. '] = ' . $v . ';' 
    ++$i; 
} 
$i = 0; 
foreach ($models as $v) { 
    echo 'models[' . $i. '] = ' . $v . ';' 
    ++$i; 
} 
$i = 0; 
foreach ($colors as $v) { 
    echo 'colors[' . $i. '] = ' . $v . ';' 
    ++$i; 
}$i = 0; 
foreach ($years as $v) { 
    echo 'brands[' . $i. '] = ' . $v . ';' 
    ++$i; 
} 

?> 

    // now you should have items from your PHP array in JS arrays so you can do something with them 

    $('a.populate-brands').click(function() { 
     for (v in brands) { 
      // 
     } 
    }) 

}); //--> 
</script> 
+0

噢,好的。非常感謝你!這有很大幫助。乾杯! – Derick 2010-08-16 12:12:12