2010-08-16 85 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