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 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 ajax en Jquery:
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");
    }
  });
});
le code php du fichier zone utiliser par ajax:
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