Je n'ai pas trouvé de solution pour garder le selected des selects lié après rafraichissement.
Si une personne rempli tous les champs et qu'il à une erreur la personne devras à chaque fois refaire le select des regions etc
Voici mon code :
Code : Tout sélectionner
$(document).ready(function()
{
$("#reg").css("display", "none");
$("#country").change(function()
{
var val = $('select#country option:selected').val();
$.ajax({
type : "GET",
url: "/Ajax/getRegion/" + val,
dataType: "xml",
success: function(xml)
{
$(xml).find('element').each
(
function()
{
var option = $(this).find('option').text();
var value = $(this).find('value').text();
$("#region").append("<option value='"+ value +"'>"+ option +"</option>");
}
);
$("#reg").fadeIn(200);
}
});
});
});
Code : Tout sélectionner
<p>
<label for="countries"><?php echo $translate->formLabel->country; ?> :</label>
<select name="country" id="country">
<option value="-1"><?php echo $translate->formValue->selectCountry; ?></option>
<?php
foreach($location->getCountries() as $country)
{
$selected = ($reg == $country['id_country']) ? ' selected=selected' : '';
echo '<option value="'.$country['id_country'].'"'.$selected.'>'.utf8_encode($country['fr']).'</option>';
}
?>
</select>
</p>
<p id="reg">
<label for="regions">Region : </label>
<span id="regions">
<select name="region" id="region">
<option value="-1">Selectionner un pays</option>
</select>
</span>
</p>
Code : Tout sélectionner
public function getRegion()
{
if(isset($_GET['id']) && is_numeric($_GET['id']))
{
$location = new LocationModel();
$this->addVar('idName', 'id');
$this->addVar('nameType', 'region');
$this->addVar('loc', $location->getRegions(67));
$this->XMLRender('location');
}
}