2008-11-16 10 views

Répondre

2

Une solution fonctionnelle mais moins élégante suit. C'est un moyen de remplir une liste de sélection d'états/provinces selon que les États-Unis (États-Unis) ou le Canada (CA) sont choisis en premier. Les États-Unis et les États-Unis sont visibles par défaut. Cette méthode repose sur une convention de dénomination de classe simple pour regrouper les options d'état en fonction de leur pays parent.

La JS:

$('#s_country').change(function() { 
    $('#s_state .state_CA').hide(); 
    $('#s_state .state_US').hide(); 
    $('#s_state').val(''); 
    var value = $.trim($("#s_country").val()); 
    $('#s_state').show(); 
    $('#s_state .state_'+ value).show(); 
}); 

Le code HTML:

<select name="s_state" id="s_state"> 
<option value="none"></option> 
<? foreach ($states_us as $v): 
    $selected = ($v->state_code == $current_state)?'selected="selected"':''; ?> 
    <option class="state_US" value="<?=$v->state_code?>" <?=$selected?> ><?=ucfirst($v->state)?></option> 
<? endforeach;?> 
<? foreach ($states_ca as $v): 
    $selected = ($v->state_code == set_value('s_state'))?'selected="selected"':'';       ?> 
    <option class="state_CA" value="<?=$v->state_code?>" <?=$selected;?>><?=ucfirst($v->state)?></option> 
<? endforeach; ?> 
</select> 

Hope this helps.

Questions connexes