Garder les données d'un formulaire ajax après actualisation de la page
Bonjour n'étant pas un expert en ajax, je m'en remet a vous pour résoudre un problème.
j'ai un formulaire avec deux select le second se remplissant en ajax en fonction du choix effectué dans le premier.
Mais ma préoccupation est que les données sont perdues lorsqu'on actualise ou on valide le formulaire alors que j'aimerais garder ces données dans le formulaire pour les afficher après validation s'il y'a des erreurs dans le formulaire.
Voici mon code html:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <form id="myForm" NAME=frm ACTION="<?php echo $_SERVER['PHP_SELF'];?>" METHOD=POST>
<label for="type" class="form">Type de Sortie :</label>
<select name="type" id="type">
<option value='none'>Sélectionnez le type de Sortie</option>
<option <?php if(!isset($_POST["type"])) {$_POST["type"]='none';}
if($_POST["type"]=='Fournisseur') { echo "selected= 'selected'";}?>
value = 'Fournisseur'>Fournisseur</option>
<option <?php if(!isset($_POST["type"])) {$_POST["type"]='none';}
if($_POST["type"]=='Banque') { echo "selected= 'selected'";}?>
value = 'Banque'>Banque</option>
</select>
<select id="hidden" name="choix">
<option value="none">Sélectionnez</option>
</select>
</form> |
le code ajax en Jquery:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| $(document).ready(function () {
var $choix = $('#hidden');
// à la sélection d'une caisse dans la liste
$('#type').on('change', function () {
var val = $(this).val(); // on récupère le choix
if (val != 'none') {
$choix.empty();
$.ajax({
//On indique le fichier ou aller consulter
url: "zone.php",
//Le type de l'envoi (POST ou GET)
type: "POST",
//On indique que le résultat sera un tableau JSON
dataType: "JSON",
//On lui donne la valeur du choix
data: 'type=' + val,
success: function (json) {
$choix.append('<option value="none">Sélectionnez</option>');
$.each(json, function (index, value) {
$choix.append('<option value="' + value + '">' + value + '</option>');
$choix.css("display", "inline-block");
});
}
});
} else {
$choix.css("display", "none");
}
});
}); |
le code php du fichier zone utiliser par ajax:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?php
if(isset($_POST['type'])) {
$json = array();
switch ($_POST['type'])
{
case 'Fournisseur':
$sql='SELECT nom_four from fournisseur order by nom_four asc';
break;
case 'Banque':
$sql='SELECT description from banque order by description asc';
break;
}
require("codePhp.php");
$bdd = new phpBDD;
$json=$bdd->Listajax($sql); // retourne les nom
// envoi du résultat au success
echo json_encode($json);
}
?> |
Merci