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:
le code ajax en Jquery:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
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 php du fichier zone utiliser par ajax:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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"); } }); });
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager