Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème Redirection AJAX

Redirection non voulue

Sujet résolu
    25 mars 2017 à 17:11:45

    Bonjour, je suis en train de développer un site en JavaScript et Php. J'utilise la bibliothèque jquery et là je me retrouve face à un problème.

    En fait, l'utilisateur choisit dans trois listes déroulantes des genres et je lui renvoie des animés japonais en fonction de ses choix. Le problème vient quand je fais mon appel en Ajax. Ma page php me renvoi bien le titre de mon animé, je l'affiche l'injecte dans l'HTML mais juste après l’affichage ma page se redirige vers le .php et m'affiche ma chaîne JSon. 

    Mon code JS : 

    $('#formulaireRecherche').submit(function() {
            $.ajax({
                type: $(this).attr('method'),
                url: $(this).attr('action'),
                data: $(this).serialize()
            }).done(function(l){
                if (l.ok) {
                    $('#formulaireRecherche').fadeOut();
                    $('#res').html(l.message).fadeIn();
                } else {
                    $('#pas_res').html(l.message).fadeIn();
                }
    
            }).fail(erreur_critique);
        });

    Et mon code Php :

    <?php
    session_start();
    include_once 'db.php';
    $ok = false;
    $message = 'Erreur';
    
    if(isset($_POST['liste1'])&&isset($_POST['liste2'])&&isset($_POST['liste3'])) {
        $valListe1 = ($_POST['liste1']);
        $valListe2 = ($_POST['liste2']);
        $valListe3 = ($_POST['liste3']);
    
        $request=$database->prepare('SELECT * FROM ANIMES WHERE PUB = :pub AND GENRE1= :genre1 or GENRE1 = :genre2 AND GENRE1= :genre1 or GENRE2 = :genre2');
        $request->bindValue(':pub', $valListe1, PDO::PARAM_STR);
        $request->bindValue(':genre1', $valListe2, PDO::PARAM_STR);
        $request->bindValue(':genre2', $valListe3, PDO::PARAM_STR);
    
    
        if(!$request->execute()){
            print_r($request->errorInfo());
            die('SQL ERROR : USER, REGISTER1');
            $ok=false;
    
        }
        if($row=$request->fetch()){
            $message=$row['TITRE'];
            $ok=true;
        }else{
            $ok=false;
        }
    }
    
    $retour = new stdClass();
    $retour->message = $message;
    $retour->ok = $ok;
    header('Cache-Control: no-cache, must-revalidate');
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    header('Content-type: application/json');
    echo json_encode($retour);

    Merci d'avance


    -
    Edité par nicolastest1 25 mars 2017 à 17:17:16

    • Partager sur Facebook
    • Partager sur Twitter
      25 mars 2017 à 17:28:39

      Il faut bloquer ton event submit, sinon l'event se propage et redirige

      event.preventDefault();

      • Partager sur Facebook
      • Partager sur Twitter
      Les gens qu'on interroge, pourvu qu'on les interroge bien, trouvent d'eux-mêmes les bonnes réponses.
        25 mars 2017 à 17:58:06

        Merci pour ta réponse mais ça ne fonctionne toujours pas :( . Pourtant je n'ai aucun souci pour le formulaire de connexion par exemple

        -
        Edité par nicolastest1 25 mars 2017 à 18:00:27

        • Partager sur Facebook
        • Partager sur Twitter
          25 mars 2017 à 19:07:10

          .submit(function(e){
          
             e.preventDefault();
             //ton code
          });
          • Partager sur Facebook
          • Partager sur Twitter
            26 mars 2017 à 9:19:01

            Merci beaucoup pour votre aide,ça fonctionne
            • Partager sur Facebook
            • Partager sur Twitter
              26 mars 2017 à 11:12:56

              Bonjour,

              Comment tu as résolu ton problème car j'ai le même soucis ?

              • Partager sur Facebook
              • Partager sur Twitter
                26 mars 2017 à 12:15:45

                TommyServantt a écrit:

                .submit(function(e){
                
                   e.preventDefault();
                   //ton code
                });


                • Partager sur Facebook
                • Partager sur Twitter
                Les gens qu'on interroge, pourvu qu'on les interroge bien, trouvent d'eux-mêmes les bonnes réponses.

                Problème Redirection AJAX

                × 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