Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur AJAX : le resultat apparait au 2eme clique

    15 octobre 2020 à 9:44:52

    Bonjour à tous ^^,
    J'ai un problème sur le retour d'une fonction ajax. Il s'agit d'une requête Sql avec des variables issues d'un formulaire.
    Mon retour ajax html se met à jour correctement uniquement si je clique deux fois sur mon élément déclencheur (même a 5s d'interval ou plus..). Smiley confused


    Je ne comprend pas pourquoi, mais j’aimerais comprendre d’où vient mon erreur et comment corriger pour avoir mon resultat au 1er click.:euh:


    Voici mon code Ajax:

    <script>
        $(document).ready(function(){
            $(".form-check-label").click(function(){
                $.ajax({
                    type: "POST",
                    url: "updater.php",
                    data: $("#formu").serialize(),
                    dataType : 'html',
    
                    success: function (code_html, statut) {
                        $('.affiche').fadeIn("slow"); // TODO !!!
                        $('.affiche').html(code_html);
    
                    },
    
                    error : function(resultat, statut, erreur){
    
                    },
    
                    complete : function(resultat, statut){
    
                    }
                });
    
            });
    
        });
    
    </script>

    Et mon fichier PHP "updater.php":

    <!DOCTYPE html>
    <html>
    <head>
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans|Roboto">
    </head>
    <body>
    
    <?php
    if (empty($_POST['forme'])){
        $_POST['forme'] = "rond";
    };
    if (empty($_POST['capacite'])){
        $_POST['capacite'] = "4";
    };
    if (empty($_POST['type_air'])){
        $_POST['type_air'] = "bulles";
    };
    
    
    include('php/sql-spa.php'); /// Connexion file to PDO database
    
    /////////////////////////////////
    $forme = $_POST['forme'];
    $capacite = $_POST['capacite'];
    $type_air = $_POST['type_air'];
    $dimension = $_POST['dimension'];
    $prix = $_POST['prix'];
    
    $req = <<<EOF
    SELECT
        *
    FROM
        spa
    WHERE
        forme = (:forme)
    AND
        nombre_personne >= (:nombre_personne)
    AND
        type_air = (:type_air)
    AND
        dimension_sol <= (:dimension)
    AND
        prix <= (:prix)
    EOF;
    
    // binValue PREPARE //
    $stmt = $database->prepare($req);
    $stmt->bindValue('forme', $forme, PDO::PARAM_STR);
    $stmt->bindValue('nombre_personne', $capacite, PDO::PARAM_INT);
    $stmt->bindValue('type_air', $type_air, PDO::PARAM_STR);
    $stmt->bindValue('dimension', $dimension, PDO::PARAM_STR);
    $stmt->bindValue('prix', $prix, PDO::PARAM_INT);
    
    if (!$stmt->execute()) {
        echo "Erreur sur la selection";
    } else {
        $products = $stmt->fetchAll(PDO::FETCH_ASSOC);
    };
    
    $rowcount= count($products);
    
    echo "<div class='totalItems'>";
    echo  "           <button>Afficher " . $rowcount . " résultats</button>";
    echo "</div>";
    
    
    
    foreach($products as $row) {
        echo "<div class='bloc-spa'>";
    
        echo " <a href=" . $row['lien'] . "> ";
    
        echo " <div class='image-container'> ";
        echo " <img src='img/spa/" . $row['image'] . " ' class='card-img-top' alt=" . $row['image'] . "> ";
        echo " </div>";
    
        echo " <div class='card-body'>" . $row['designation'] . "</div> ";
        echo " <div  class='price-box'>" . $row['prix'] . ".00€</div> ";
    
        echo " </a> ";
    
        echo "</div>";
    }
    
    ?>
    
    </body>
    </html>

    Merci à tous :honte:


    • Partager sur Facebook
    • Partager sur Twitter
      19 octobre 2020 à 12:45:06

      salutations, 

      on ne voit pas où ta fonction est appelée, est-ce que tu as des retours dans la console.

      Difficile à debugger pour moi  avec seulement ces infos.

      • Partager sur Facebook
      • Partager sur Twitter

      Développeur react freelance à Toulouse  

      Je suis développeur  react freelance spécialisé dans la création de site internet basé à Toulouse

      Erreur AJAX : le resultat apparait au 2eme clique

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown