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

AJAX Discussion :

Défilement formulaire + enregistrement BDD


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 66
    Par défaut Défilement formulaire + enregistrement BDD
    Bonjour / Bonsoir tout le monde

    Alors je vous explique mon soucis en faite :

    j'ai une page test.php sur cette page il y a un formulaire on va le nommé "form1" avec un bouton "Suivant" de type bouton non submit donc ce que je veux faire c'est quand on clique sur le bouton "suivant" il y a code ajax qui enregistre les données de "form1" dans une BDD et faire apparaitre un 2 eme formulaire donc "form2" tout ça sans charger la page et sachant que "form1" et "form2" sont different, donc comment faire svp ?

    pour l'instant j'ai ce code mais sa marche pas :
    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
    <div align="center" style="margin-top:100px" id="ins_form">
      <form method="post" action="test.php?machin">
        <input type="button" name="suiv" id="suiv" value="Suivant >>" style="margin-top:50px" onclick="next()" />
      </form>
    </div>
    <script>
      function next() {
        var xhr = new XMLHttpRequest();
        xhr.open('GET', 'test.php?machin', true);
        xhr.send(null);
        xhr.onreadystatechange = function() {
          if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {}
        };
      }
    </script>
    <?php
    $BDD = mysql_connect("localhost", "root", "");
    mysql_select_db("pat");
    if (isset($_GET["machin"])) {
        // la le code pour enregistré les données de form1 ;
        echo '<script> alert("youpi !") ; </script>';
    }
    ?>

  2. #2
    Membre chevronné
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Votre code est erroné. En effet passer par un formulaire html, va recharger la page, ce qui n'est pas de l'ajax. Dans un tel cas de figure, il vous suffit de générer le 2e formulaire en réponse à partir de test.php, ce qui n'est pas ce que vous cherchez à faire puisque vous postez sur un forum ajax. (Note: Je rappelle au passage que la bonne syntaxe est test.php?variable=parametre et qu'il vous faut éviter d'envoyer une requête GET et POST en même temps)

    Ensuite, vous devez corriger votre algorithme de la façon suivante:

    1) Vous postez votre formulaire en Ajax (sans passer par un formulaire html : (balise form)). Pour envoyer passez par une fonction javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <button id="submit" onclick="validate_form()" />
    ici la fonction validate_form().
    2) Dans votre fonction Javascript, vous récupérez les valeurs saisies dans votre formulaire, puis vous les contrôlez le cas échéant, et les envoyez à votre contrôleur Ajax PHP (ici test.php)
    3) Sur un retour Ajax (success) vous récupérez la réponse du serveur qui doit contenir l'information si la validation du premier formulaire s'est bien déroulée, par exemple avec un statut 'ok', et avec le contenu du 2e formulaire par exemple que vous affichez dans votre DOM.

    Cordialement,

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 66
    Par défaut
    en faite je vous explique voila le premier form :


    Nom : form1.JPG
Affichages : 253
Taille : 16,0 Ko



    quand l'utilisateur clique sur suivant je veux que ses données s'enregistre dans ma base de donnée et le 2 ème formulaire ( ci-dessous) apparait sans chargé la page :

    Nom : form2.JPG
Affichages : 237
Taille : 6,4 Ko


    comment dois-je m'y prendre ?

  4. #4
    Membre chevronné
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Billets dans le blog
    4
    Par défaut
    Pouvez-vous m'indiquez ce que vous n'avez pas compris ou mal compris dans la réponse que je vous ai faite?

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] défilement des enregistrements d'un formulaire donné
    Par galliotal dans le forum IHM
    Réponses: 11
    Dernier message: 23/06/2009, 08h10
  2. [MySQL] Bug enregistrement formulaire dans bdd Mysql
    Par Vanaheim dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/07/2008, 00h05
  3. Réponses: 4
    Dernier message: 08/04/2008, 13h38
  4. [MySQL] Enregistrement formulaire dans BDD
    Par Elrubio dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/08/2007, 12h02
  5. [MySQL] Enregistrer Infos Formulaire dans Bdd
    Par jakkihm dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/01/2007, 17h13

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