Le code ci-dessous permet d'afficher les données d'un formulaire sans recharger la page grâce à ajax (XMLHttpRequest) et je ne comprend pas comment ré afficher les données du second formulaire qui s'ouvre grâce à ajax lors de la validation si une erreur surgit ?
Soit un simple formulaire "index.php":
Code : Tout sélectionner
<form name="listes" action="#ancre" method="post">
<select name="region" onChange="javascript:getVilles()">
<option value="Choix_de_la_region" >«Choisissez la région»</option>
<option value="Alsace" <?php if($region=='Alasace') {echo "selected='selected'";}?>>Alsace</option>
<!--etc...-->
</select>
<!--Le formulaire ci dessous s'exécute grâce à l'ajax-->
<span id="departements">
<select name="departement">
<option value="Choix_du_departement">«Choisissez le département»</option>
</select>
</span>
<input name="envoyer" value="envoyer" type="submit"/>
</form>
<?php
if (isset($_POST["envoyer"]))
{
$region = $_POST["region"];
$departement = $_POST["departement"];
echo ''.$region.'-'.$departement.'';
}
?>
Code : Tout sélectionner
$dpt = isset($_GET['dpt']) ? $_GET['dpt'] : false;
$regions[Alsace] = array("Bas-Rhin","Haut-Rhin");
//etc...
if($dpt != false) {
echo '<select name="departement">';
for($i=0; $i<count($regions[$dpt]); $i++) {
echo '<option value="'.$regions[$dpt][$i].'" '>'.$regions[$dpt][$i].'</option>';
}
echo '</select>';Code : Tout sélectionner
var requete = null;
function creerRequete() {
try {
requete = new XMLHttpRequest();
} catch (microsoft) {
try {
requete = new ActiveXObject('Msxml2.XMLHTTP');
} catch(autremicrosoft) {
try {
requete = new ActiveXObject('Microsoft.XMLHTTP');
} catch(echec) {
requete = null;
}
}
}
if(requete == null) {
alert('Votre navigateur ne semble pas supporter les object XMLHttpRequest.');
}
}
function getVilles() {
creerRequete();
var regions = document.forms['listes'].region;
var dpt = "";
for (i = 0; i < regions.options.length; i++) {
if (regions.options[i].selected) {
dpt += regions.options[i].value;
}
}
var url = 'liste-ajax.php?dpt='+dpt;
requete.open('GET', url, true);
requete.onreadystatechange = function() {
if(requete.readyState == 4) {
if(requete.status == 200) {
document.getElementById('departements').innerHTML = requete.responseText;
}
}
};
requete.send(null);
}Code : Tout sélectionner
if($dpt != false) {
echo '<select name="departement">';
for($i=0; $i<count($regions[$dpt]); $i++) {
echo '<option value="'.$regions[$dpt][$i].'"';
if($regions[Alsace]=='Bas-Rhin'){echo "selected='selected'";}
if($regions[Alsace]=='Haut-Rhin'){echo "selected='selected'";}
echo '>'.$regions[$dpt][$i].'</option>';
}
echo '</select>';..mais rien n'y fait
Peut on ré afficher les données du formulaire généré par ajax et si oui, comment ?
Merci