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

jQuery Discussion :

Requête simple en Ajax [AJAX]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Requête simple en Ajax
    Bonjour, j'ai importé une BDD dans Wampserver et j'ai crée un fichier php pour y faire une requête.
    Lorsque j'exécute la requête en tapant le lien dans la barre d'adresse du navigateur, elle fonctionne correctement.

    Code PHP : 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
    <?php
     
    header('Content-Type: application/json; charset=utf-8');
     
    	try{
    	  include('config.php');
    	  include('pdo2.php');
    	  $pdo = PDO2::getInstance();
    	  $etatsmat=0;
    	  $pdo->exec("SET CHARACTER SET utf8");
     
    	  $requete_prepare_1=$pdo->prepare("SELECT monText FROM articlebdd WHERE Id = '31'"); 
     
    	  $requete_prepare_1->execute();
    	  $json= array();
     
    	  while($lignes=$requete_prepare_1->fetch(PDO::FETCH_OBJ))
    		{			
    		    $json[]=array(
    			'monText'=>$lignes->monText,
    			);
    		}
     
    	$requete_prepare_1->closeCursor();
    	$json['success']=true;
     
    	echo json_encode($json);
     
    	}catch(PDOException $e) {
    	     echo 'Error:'.$e->getMessage();
    	}	  
    ?>

    Je voudrais donc récupérer le résultat de ma requête par le biais d'une fonction ajax.
    Mais j'y arrive pas en tapant le code ci-dessous, j'obtiens "NO DATA PRESENT".
    Pourriez-vous me dire ce qui ne va pas, svp?
    Merci beaucoup par avance.
    Arsène




    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
    function maFonction() {
     
            $.ajax({
                url: http://localhost/DosTxt/requestMonTexte.php,
                type: 'get',
                dataType: 'json',
     
                success: function(data1) {
     
                            if(data1 == "SUCCESS"){
                           	      alert(data1);
                               }
                           else{
                                  alert("NO DATA PRESENT");
                               }
     
                    },
     
                    error: function (responseData) {
     
                        alert("ERROR");
            }
     
                });
     
            };

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    quand tu écris dataType: 'json', cela signifie que tu reçois en retour des données au format JSON, donc data1 == "SUCCESS" n'a aucun sens !

    Mets un console.log( data1) dans ta fonction « success » et regarde ce que tu récupères.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Bonjour,

    j'ai donc utilisé la console et lorsque je lance la requête, la fenêtre alert() renvoie "ERROR" (Dans mon appli c'est "NO DATA PRESENT")

    La console indique ceci :

    Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost/DosTxt/requestMonTexte.php. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

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

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    pour savoir l'erreur dans le callback error de $.ajax, utilise 'reponseText' =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error:function(responseData){alert('ERROR :'+responseData.responseText);}
    puis au niveau php, tu commet une erreur de syntaxe dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $json[]=array(
    	'monText'=>$lignes->monText,// il faut enlever cette dernière virgule.
    );
    puis tu as déjà déclaré la variable $json en tant que array : $json= array(), pas la peine de le refaire $json[]=array(...);
    $json['monText']=$lignes->monText est suffisant.

    il y a le header aussi que tu dois enlever, ajax s'en occupera..., l'essentiel c'est que tu as mis dataType:'json' dans les paramètres de ajax.

    ensuite pour la récupération de data1 qui est dans le callback success d'ajax, tu peux mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    success:function(data1){console.log(JSON.stringify(data1));}
    pour voir le résultat 'data1' dans la console, sous forme string .

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Merci beaucoup, j'ai l'impression que la solution n'est pas loin.

    J'ai donc désactivé dans le code php la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //header('Content-type: application/json');
    et j'ai rajouté le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Access-Control-Allow-Origin: *');
    Avec ça j'ai réglé le problème Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

    J'ai éliminé ensuite la dernière virgule en trop que j'avais mise après $lignes->monText

    Mais je n'arrive toujours pas à récupérer les données.

    Le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    success:function(data1){console(JSON.stringify(data1));},
    me donne comme erreur : TypeError: console is not a function


    J'ai aussi désactivé le code ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    						/*
                            if(data1 == "SUCCESS"){
                          // alert(data1);
                               }
                           else{
                                 alert("NO DATA PRESENT");
                               }*/

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

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    ce n'est pas console() mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    console.log(JSON.stringify(data1))

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

Discussions similaires

  1. [AJAX] Ajax - requête simple
    Par Liebgott dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/05/2008, 13h49
  2. pb avec requête simple :(
    Par jiojioforever dans le forum Langage SQL
    Réponses: 13
    Dernier message: 29/01/2007, 10h33
  3. Réponses: 11
    Dernier message: 13/07/2006, 16h15
  4. Réponses: 2
    Dernier message: 23/06/2006, 14h16
  5. [DEBUTANT] TSqlQuery & requête simple
    Par fred64 dans le forum Bases de données
    Réponses: 3
    Dernier message: 21/04/2004, 11h35

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