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 :

Réception données AJAX


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2016
    Messages : 6
    Par défaut Réception données AJAX
    Bonsoir à tous,

    Je me permets de poster un petit topic ici afin d'avoir quelques renseignements sur un problème que je rencontre avec de l'AJAX / PHP.

    Avant d'exposer mon soucis, j'ai fais pas mal de recherche sur le problème, mais je n'arrive pas à avoir réponse.

    La fonctionnalité final étant d'avoir un champ text, et lorsque je note quelque chose (recherche un nom par ex.) le champ ce met à jour avec une liste déroulante en dessous en fonction de ce qui est noté. (Avec une recherche dans une BDD).

    Je bloque sur le fait de récupérer ce que je note afin de le traiter avec le code php.

    Voici mon code :

    search.php :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    <?php
        session_start();
      
            include_once 'class/ManagerUsers.php';
     
            $userManager = new ManagerUsers();
       
       include 'isLogin.php';
     
            if (empty($_SESSION['current_user_id']))
            header("Location: index.php");
            
            $titleHtml = "Rechercher un client";
            include 'header.php';
     
            if(isset($_POST['test']) && !empty($_POST['test'])) {
                    echo "<h1>toto</h1>";
    //              $userName = $userManager->findUserByName();
    //              $userLastname = $userManager->findUserByLastname();
    //              $userEmail = $userManager->findUserByEmail();
            }
     
    ?>
    Par son nom :<br />
    <input id="searchName" type="search"></input>
    <select style="display:none" multiple class="form-control">
    <?php
    // <option> dynamique avec les éléments récupérés
    ?>
    </select>
    <br />
    Par son Prénom :<br />
    <input id="searchLastname" type="search"></input>
    <select style="display:none" multiple class="form-control">
    <?php
    // <option> dynamique avec les éléments récupérés
    ?>
    </select>
    <br />
    Par son email :<br />
    <input id="email" type="search"></input>
    <select style="display:none" multiple class="form-control">
    <?php
    // <option> dynamique avec les éléments récupérés
    ?>
    </select>
     
     
    <script>
    $(document).ready(function(){
    	$("#searchName").keyup(function(){
    		var myname = $('#searchName').val();
    	    $.ajax({
    	       type : 'POST',
    	       url : 'search.php',
    	       data : 'test=' + myname,
    	       dataType : 'html',
    	       success : function(code_html, statut){
    	           alert(code_html);
    	           // alert(myname);
    	       },
    	       error : function(resultat, statut, erreur){
    	           alert('nop');
    	       }
    	    });
    	});
    });
    </script>
     
    <?php include 'footer.php'; ?>
    La question étant, pourquoi dans le $_POST['test'] je ne récupère aucunes données ?

    Ou est mon erreur ?

    Cdlt

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 666
    Par défaut
    après le "var myname = ..." rajoutez console.log(myname); pour vérifier que vous envoyez bien la donnée

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2016
    Messages : 6
    Par défaut
    Merci pour votre réponse

    Après avoir placé console.log(myname); je vois correctement ce que j'inscris dans mon champ input dans la console.

    J'avais également testé, dans la fonction success, de mettre un alert(myname), la pop-up me renvois correctement ce que j'inscris aussi.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 666
    Par défaut
    je viens d'essayer votre code JavaScript et je retrouve bien la données dans $_POST
    donc le problème est peut-être dans le code PHP, essayez ça avant "session_start" : echo json_encode($_POST);exit();

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2016
    Messages : 6
    Par défaut
    J'ai essayé echo json_encode($_POST);exit(); mais avec le exit(); je n'ai pas l'input nécessaire à envoyer le POST. J'ai donc essayé sans exit(); et en rajoutant à tous les blocks php :

    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
     
        echo json_encode($_POST);
        echo json_encode($_GET);
     
        session_start();
     
        echo json_encode($_POST);
        echo json_encode($_GET);
     
        include_once 'class/ManagerUsers.php';
     
        echo json_encode($_POST);
        echo json_encode($_GET);
     
        $userManager = new ManagerUsers();
     
        echo json_encode($_POST);
        echo json_encode($_GET);
     
       include 'isLogin.php';
     
       echo json_encode($_POST);
       echo json_encode($_GET);
     
       if (empty($_SESSION['current_user_id']))
       header("Location: index.php");
    J'ai également essayé avec la méthode $_GET et rien non plus.

    De plus, j'ai essayé de faire référence à une autre page php :

    ajax.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    echo json_encode($_POST);exit();
    ?>
    Le résultat est toujours le même : "[]"

    Une idée, sur quel environnement testez-vous ?

    Je suis sur WAMP, est-ce qu'il y aurait un module à activer en particulier ?


    EDIT : j'ai essayé de mettre à la main ?test=something dans l'URL et je reçois bien la donéne dans ce cas sous le type d'une hash :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"test":"something"}

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 666
    Par défaut
    J'ai tester avec PHP 5.6 et Apache sur Windows.
    Du côté navigateur, j'ai testé Firefox, un cousin de Chrome et IE et ça fonctionne dans les 3 cas.

    Et pour le texte dans le champ "searchName" vous avez essayé un texte simple comme "abc" sans accents ou autres caractères spéciaux ?

Discussions similaires

  1. Interprétation de données AJAX en réception
    Par Syarko dans le forum AJAX
    Réponses: 0
    Dernier message: 16/10/2015, 19h50
  2. Réception de données AJAX JSON
    Par yohann3396 dans le forum AJAX
    Réponses: 4
    Dernier message: 10/10/2015, 18h36
  3. Graphique avec Flot et réception de donnée ajax
    Par Desours dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 30/08/2012, 11h57
  4. [AJAX] base de donnée Ajax
    Par kawther dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/02/2007, 16h52
  5. Récupération de données AJAX
    Par mxh77 dans le forum 4D
    Réponses: 1
    Dernier message: 03/02/2007, 07h02

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