IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Garder les données d'un formulaire ajax après actualisation de la page


Sujet :

jQuery

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 98
    Points : 45
    Points
    45
    Par défaut 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 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

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    983
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 983
    Points : 1 030
    Points
    1 030
    Billets dans le blog
    36
    Par défaut
    Bonjour sabdoul,

    Je suis intrigué par le code suivant:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $json=$bdd->Listajax($sql);

    Est-il natif de PHP ou te faut-il :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
     require("codePhp.php");

    que tu as développé pour l'exécuter?

    De plus, le code suivant dans le fichier .js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     $.each(json, function (index, value) {
                $choix.append('<option value="' + value + '">' + value + '</option>');
                $choix.css("display", "inline-block");
    });
    Te permet d'extraire soit nom_four soit description selon la valeur de $_POST['type'] => Juste ???

    Sais-tu le code pour extraire les valeurs pour chaque champs si ta variable json renvoie une liste de champs et pas un seul champ?

    Merci pour ton aide
    Bonne soirée

    Merci par avance pour tes explications!!!

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    l'intitulé de ton post me chagrine ..

    si tu fais un ajax ... la page ne se recharge pas, tu n'as donc pas à te soucier de recupérer les informations du form ...

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/08/2010, 16h34
  2. envoyer les données d'un formulaire, mais rester sur la meme page
    Par am@123 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/06/2009, 09h20
  3. Réponses: 2
    Dernier message: 19/06/2007, 12h08
  4. Garder les données d'un formulaire
    Par zeugzeug dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 21/04/2007, 21h09
  5. garder les données dans le formulaire
    Par nebil dans le forum Langage
    Réponses: 3
    Dernier message: 28/05/2006, 00h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo