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 :

Chargement formulaire ajax récupération BDD SQL


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut Chargement formulaire ajax récupération BDD SQL
    Hello, j'ai plusieurs problème sur le système tout bête que j'essaie de mettre en place : Premièrement, je charge un formulaire (qui est sur une page externe) au clique sur un calendrier comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                $('td').on('click', function() {
                    var value = $('.daytitle', this).text(); // On récupère la date de la cellule
                  // on charge le formulaire au click sur le td, on le charge dans la div du tableau
                    $('.reservation').load('../views/formulaireajax.html', function() {
                      $('.reservation #textcontent').text('Vous avez choisi le ' + value); // Une fois le formulaire chargé, on remplace le contenu de textcontent
                    });
     
                  });
    le formulaire est sur la page "formulaireajax.html" est et simple comme bonjour :
    Code html : 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
    30
    31
    32
    33
     <section class="formulaireajax">
                            <p id="textcontent">Vous avez choisi le</p>
                            <form method="post" action="../controller/ControllerReservation.php">
                                <fieldset>
                                        <legend>Prendre rendez-vous</legend>
                                    <ul>
                                        <li>
                                            <label for="ajax-name">Votre nom : </label>
                                            <input type="text" name="nom" class="name">
                                       </li>
                                        <li>
                                            <label for="ajax-emmail">Votre email : </label>
                                            <input type="text" name="email" class="mail">
                                        </li>
                                        <li>
                                            <label for="ajax-number">Votre téléphone : </label>
                                            <input type="number" name="numero" class="number">
                                        </li>
                                        <li>
                                            <label for="ajax-time">Heure : </label>
                                            <input type="datetime" name="heure">
                                        </li>
                                        <li>
                                            <label for="ajax-message">Votre message : </label>
                                            <textarea colspan="3" name="message"></textarea>
                                        </li>
                                        <li>
                                            <input type="submit" value="Envoyer" name="submit" class="submit">
                                        </li>
                                    </ul>
                                </fieldset>
                            </form>
                        </section>
    Cependant au chargement qui s'effectue bien, le lien "action" reste vide alors qu'il est bien rempli dans mon code je ne comprend pas pourquoi ? Je suis obliger de le remplir dans mon navigateur.
    DEUXIEME PROBLEME BEAUCOUP PLUS IMPORTANT je charge "database.php" bon correctement je vous met le code quand même même si je sais d'ou viens le problème sait-on jamais cela peut aider d'autre personne pour l'organisation :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
    $db_host = 'localhost';
    $db_name = 'debarras';
    $db_user = 'root';
    $db_pass = '';
     
    //	Connexion à la base de données
    $pdo = new PDO ("mysql:host=$db_host;dbname=$db_name;charset=UTF8", $db_user, $db_pass, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    ]);
    Je passe à mon controlleur de mon formulaire, pour verifier les données (bon je les ai pas vraiment vérifier encore puisque je suis encore en local je voulais déjà voir si l'enregistrement en BDD marcher : BINGO ça plante) :
    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
    <?php
     
    if(array_key_exists('submit', $_POST)){
     
        require_once "../database.php";
     
        $nom = isset($_POST['nom']);
        $email = isset($_POST['email']);
        $numero = isset($_POST['numero']);
        $message = isset($_POST['message']);
        $heure = isset($_POST['heure']);
     
        $sql = "INSERT INTO reservation (email, heure, message, nom, numero) VALUES (?, ?, ?, ?, ?)";
     
        $query = $pdo->prepare($sql);
        $query->execute([$email, $heure, $message, $nom, $numero]);
     
    }
    header("Location: ../index.php");
    exit;
    Alors effectivement "l'enregistrement" ce fait, mais les valeurs ne sont pas entré, a la place j'ai plutôt "1" "1" "1" ou pour l'heure "00:00:0000" j'ai cru comprendre que c'était dû à l'objet XHRHttpRequest, or sincèrement, je ne m'y connais pas du tout quelqu'un pour m'apprendre m'expliquer ? m'aider ?

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    normal que tu as que des 1, par-ce que tu met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom=isset($_POST['nom']);
    c'est une verification d'existence de la variable nom et pas une affectation de valeur.
    il faut mettre ainsi que pour les autres variables (email,numero...)

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    Alors si j'enlève les isset j'ai un tas d'erreur " Notice: Undefined index: email in C:\wamp64\www\onrefait2\controller\ControllerReservation.php on line 8" pour chaque variable, ainsi que :
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Le champ 'email' ne peut être vide (null
    ) et
    PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Le champ 'email' ne peut être vide (null) in C:\wamp64\www\onrefait2\controller\ControllerReservation.php on line 16

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    je viens de tester, l'insertion est bonne, aucune erreur.
    vérifie la variable $_POST var_dump($_POST), si elle contient les bonnes valeurs...

  5. #5
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    Oui oui ça récupère bien mes valeurs que je rentre donc normalement "email" ne devrais pas être vide et les autres ne devrais pas être undefind lol. Je pense que ça vient de la méthode load. Et comme j'expliquais dans mon premier post, lors du chargement dema page du formulaire l"action" ="../controller/ControllerReservation.php" n'est pas charger je ne comprend pas pourquoi vue que le reste de la page oui, j'ai essayer de recupérer les valeurs comme ça aussi en jquery :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     $("#formulaireajax").load("../controller/ControllerReservation.php", {
     
        nom : $("input[name='nom']").val(),
        email : $("input[name='email']").val(),
        numero : $("input[name='numero']").val(),
        message : $("textarea[name='message']").val(),
        heure : $("input[name='heure']").val(),
    });
    ça marche pas non plus. Sincèrement je sais pas comment faire c'est la première fois que ça m'arrive

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    Non,load n'a aucun rapport avec ça, par-ce que j'ai testé avec ton code et ça fonctionne correctement. J'ai juste modifié les chemins relatifs.
    Si $_POST renvoie bien les valeurs et que tu as undefined, cela veut dire que les champs du formulaire n'existent pas au moment de l'insertion!
    Tu peux nous montrer la hiérarchie de tes dossiers?

  7. #7
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    Et donc comment je règle le problème ? Parce que j'avais pensez a isset justement mais à part ça je vois pas et ça m'insèrer pas mes données dan la bdd, et je pensez aussi au fait que le chargement du formulaire ce fait sur une page d'un calendrier en php bon je pense pas que ça ai un rapport mais ça aurait peut être porter confusion

  8. #8
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    Je vais te montrer ça

    Nom : Capture d’écran (7).png
Affichages : 380
Taille : 182,9 KoNom : Capture d’écran (8).png
Affichages : 371
Taille : 181,1 Ko
    Je suis dans le dossier onrefait2

  9. #9
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    Alors en fait je viens de comprendre la moitié du problème : j'ai inclue mon controller dans ma page php du calendrier de reservation ) alors ; j'ai mes données qui s'insère dans ma base de donnée, mais mes erreurs reste en bas de la page donc j'ai quand même une *** dans le paté quelque part

    Nom : Capture d’écran (9).png
Affichages : 358
Taille : 175,5 Ko Mon fameux calendrier

  10. #10
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    Une enregistrement en base de donnée par miracle ou par bug simplement. Mon tableau de $_POST n'est pas bon. Cela ne correspond pas il récupère :
    C:\wamp64\www\onrefait2\controller\ControllerReservation.php:12:
    array (size=5)
    'nom' => string 'Morgan' (length=6)
    'mail' => string 'mel.morgan@gmail.com' (length=20)
    'number' => string '77777777777777' (length=14)
    'wakeup' => string '11:01' (length=5)
    'submit' => string 'Envoyer' (length=7)
    alors que je récupère mes variable par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        $nom = $_POST['nom'];
        $email = $_POST['email'];
        $numero = $_POST['numero'];
        $message = $_POST['message'];
        $heure = $_POST['heure'];
        var_dump($_POST);
    wakeup était l'ancien 'name' que j'avais donner a mon input type maintenant 'heure' de mon formulaire, alors j'ai relancer mon serveur mais rien n'y fait je comprend pas comment il récupère ça et pas mes données qui pourtant sont bien la ('jentre morgan dans prénom ça va ressortir mais dans "name" et pas dans "nom") et aussi "message n'est pas la. Je bloque encore

  11. #11
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    le problème provient du chemin relatif dans la page formulaireajax.html, il n'est pas dynamique.
    pour résoudre tout ça, la page formulaireajax.html doit être une page php et pas html.
    j'ai compressé le projet, télécharge le Pièce jointe 399868, et tu verra que tout fonctionne bien.

  12. #12
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    J'avais mis l'extension html car en "phtml" ça me faisait une erreur de fou xhr je me souvient plus trop je vais voir ça

  13. #13
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    Alors le chemin n'est pas dynamique car j'ai fait une boucle php sur mon menu sur mon index php, mais la page reservation n'est pas dans le menu doonc je savaias pas trop comment gerer ça ça me faisait des erreur partout "indefind variable HOME " quand j'incluais mon layout alors j'ai fait ça au dur... Je viens de changer l'extension en .php et tout marche comme par margie j'ai juste envie de pleurer je comprend pas cette tonne d'erreur juste pour une extension

  14. #14
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 405
    Points : 4 841
    Points
    4 841
    Par défaut
    juste une simple extension? lol eh ben cette SIMPLE EXTENSION change le tout.

Discussions similaires

  1. Réponses: 22
    Dernier message: 25/06/2012, 11h14
  2. Réponses: 3
    Dernier message: 22/11/2010, 09h18
  3. [AJAX] Formulaire dynamique - Récupération de variable
    Par Ben79 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/06/2007, 14h46
  4. [AJAX] récupération de formulaire avec AJAX
    Par abda1000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/03/2007, 09h59
  5. Réponses: 2
    Dernier message: 04/06/2006, 20h11

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