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 :

[AJAX] Récupérer et traiter la réponse d'une requete sql par AJAX


Sujet :

AJAX

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 12
    Points : 8
    Points
    8
    Par défaut [AJAX] Récupérer et traiter la réponse d'une requete sql par AJAX
    Bonjour à tous,

    Tout d'abord mon problème ne porte pas sur la façon de récupérer les données souhaités mais sur la façon d'organiser les données à envoyer de tel façon qu'elle soit traitable par le client en JS.
    Mon problème est donc sur deux langages le JS pour le client qui traite les informations reçues et le php qui ordonne la réponse sql.

    Je recherche donc soit quelqu'un qui aurais une méthode (textuellement décrite par la manière et le nom des fonctions à employer) qui réponds à mon problème soit des personnes qui peuvent m'aider à améliorer mon code déjà existant (que je ne crois pas très juste).

    Dans mon code du coté client je ne sais vraiment pas trop quoi en faire.
    Et du coté serveur je range ma réponse dans un array. Cependant après réflexion vu que la réponse est déjà un array je ne pense pas qu'il soit possible de le ranger dans un array.

    sur ce voici mon code

    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
    xhr.onreadystatechange = function() 
    			{
    				alert("ca fonctionne");
     
        			if (xhr.readyState == 4 && xhr.status == 200) 
    				{
    		 			if (xhr.responseText)
    			 		{
    			 			alert ("erreur7");
     
     
    						alert (xhr.responseText);
     
    		 			}
    		 			else
    		 			{
    			 			alert("erreur1");
     
    		 			}
    		 		}
    			};
    ha et l'alerte affiche celà comme réponse

    [{"proprietaire":"rott","0":"rott","lien":"mlpoo","1":"mlpoo","localisation":null,"2":null,"nom fichier":"hello worl","3":"hello worl"},false]
    Ce qui n'est absolument pas ce que j'attends vue que je fais une recherche sur une bdd ayant ces nuplets
    rott /mlpohuo /machine1 /trololol
    rott /mlpoo /machineé /hello worl
    meme /mmooliglpoo /machineé /rail sncfl
    rott /kligiuy /norber / vla ltruc
    et que je recherche sur 'rott'.

    Pour la partie 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
    $lien = $bdd->prepare('SELECT * FROM `liens` WHERE proprietaire = ?');
    	$lien->execute(array($_SESSION['login']));
     
    	$donnee = array();
     
     
    	if ($lien != NULL)// je range dans un tableau ma réponse sql
    	{
    			while ($fet = $lien->fetch()) 
       			{ 
        			$donnee[]=$lien->fetch();
     
        		}
    			echo json_encode($donnee);//là je renvoie une réponse organisé avec JSON
     
    	}
    Merci pour la lecture.

    ROTTOT

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 670
    Points
    44 670
    Par défaut
    Bonjour,
    Ce qui n'est absolument pas ce que j'attends vue que je fais une recherche sur une bdd ayant ces nuplets
    la réponse que tu obtiens est bien au "format JSon",
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [{
      "proprietaire": "rott",
      "0": "rott",
      "lien": "mlpoo",
      "1": "mlpoo",
      "localisation": null,
      "2": null,
      "nom fichier": "hello worl",
      "3": "hello worl"
    },
    false]
    c'est donc du coté serveur qu'il faut que tu vois cela ou alors il convient de reprendre la façon de récupérer les datas.

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci.

    j'avais passé à autre chose et lors de différents test j'ai rempli ma bdd. Je me suis alors rendu compte en revenant sur ce problème que finalement ce ne sont que les deux premier résultats qui ne rentrent pas dans le tableau.
    Je me suis alors dis que je devais sauter ces lignes et c'est en effet ce que j'ai fait...
    Mal utiliser fetch est plutot fatal!

    Voici finalement mon erreur une fois corrigée.

    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
    $donnee = array();
     
     
    	if ($lien != NULL)
    	{
    			$sortie = 0;
    			for($i=0; $sortie == 0 ; $i++) //il y avais ici un while qui sautait des lignes
       			{ 
        			$donnee[]=$lien->fetch();
    				if ($donnee[$i] == NULL)
    				{
    					$sortie = 1;
    					array_pop($donnee);
    				}
     
        		}
    			echo json_encode($donnee);
     
    	}
    	else
    	{
    		$result = 0;
    		echo "error";
    	}
     
    	$lien->closeCursor();
     
    	}

    Je me demande si je passe bien par mon closeCursor en faisant ainsi.
    Et quel sont les effets de ne pas faire closeCursor?

    Et enfin comment puis-je faire en sorte de rentre mon JSON traitable en JS?

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/02/2015, 12h17
  2. Alimenter une requete SQL par la valeur d'un TextBox
    Par Monta^^ dans le forum ASP.NET
    Réponses: 5
    Dernier message: 06/02/2012, 11h17
  3. [AJAX] récupérer une valeur envoyé par ajax
    Par ineskh dans le forum AJAX
    Réponses: 3
    Dernier message: 08/02/2010, 20h12
  4. Réponses: 1
    Dernier message: 26/03/2009, 19h43
  5. [MySQL] récupérer la moitié du texte via une requete SQL
    Par wallawalla dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 15/02/2009, 23h43

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