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 :

.ajax retour données [AJAX]


Sujet :

jQuery

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 64
    Points : 47
    Points
    47
    Par défaut .ajax retour données
    Bonjour

    J'utilise la fonction .ajax , à l'interieur de celle-ci je reçois un tableau de données.

    Mon problème est que je souhaite utiliser les données en dehors du .ajax

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     $.ajax(
      ....
      succes :  function(data){
             data
      }
      );
     
     
    /* ici je souhaite reutiliser la valeur DATA*/
     console.log(data)
    mais firebug m'indique que "data" is undefined

    Je ne trouve aucunes pistes sur internet pour resoudre ce probleme

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 64
    Points : 47
    Points
    47
    Par défaut
    attention le probleme ne vient pas d'un asynchronisme car j'ai testé de renvoyer un variable definie en dur dans la function "look at the result variable"

    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
     
    .ajax(
    for (var $Player_Id=0; $Player_Id < 5; $Player_Id++) 
      {
       var result;
       $.ajax(
       {
    	type:'GET',
    	url:'get-content.php',
    	datatype: 'json',
    	data:{Table_Id:$Table_Id, Player_Id :$Player_Id},
    	async:false,
    	succes:function (data)								var arrayColonnes = arrayLigne[$Player_Id].cells;
    								arrayColonnes[1].style.backgroundColor = "red";
    	{
             	var result = 'Table_Id';
    		return result;
    	} 
       });
        console.log($Table_Id);								          console.log($Player_Id);
       console.log(result);
     
       };
    };
    dans firebug j ai bien l'affichage des 2 premiers log mais pr le 3eme j ai undefined

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Ah ben oui, au temps pour moi...
    Vu que les osselets de chiots que j'ai utilisés pour deviner ce qu'il y avait dans "...." étaient périmés, j'ai dû me contenter d'une des causes les plus probables

    Ton problème ne vient effectivement pas de l'aspect asynchrone mais du scope de tes variables.
    Comme le mot clé function peut le laisser présager, le callback success de jQuery appelle une fonction (qui du reste est une fonction anonyme).
    La création d'une fonction entraine la création d'une portée qui lui est propre et les variables déclarées dans cette portée sont locales.
    Du coup, lorsque tu déclares var result = 'Table_Id';, la variable result n'est pas la même que celle déclarée avant le $.ajax et quand tu demande la valeur de cette dernière, ben, elle vaut bien undefined
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 64
    Points : 47
    Points
    47
    Par défaut
    Je réactualise les propositions faites par SpaceFrog

    code jQuery
    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
     
    	/* init each table */
      TabId  = 0;
      PlayId = 0;
    	 $.ajax(
    	 	{
    	 	type:'GET',
    		url:'get-content.php',
    		data:"Table_Id="+TabId+"&Player_Id="+PlayId,
    		dataType: 'json',
    		async:false,
    		success:function (data)
    		{
    	    for (var Table_Id=0; Table_Id < 4; Table_Id++) 
    			{
    				for (var Player_Id=0; Player_Id < 5; Player_Id++) 
    				{
    			    console.log(Table_Id);
    					console.log(Player_Id);
    					console.log(data);
    					console.log("fin");
     
    				}
    			}
    		} 
    	});

    code php
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
     
    <?php
     
    /*Connect base*/
     
    $db = mysql_connect('localhost', 'root', '') or die('erreur'.mysql_error());
    mysql_select_db('esd',$db);
     
     
    for ($Tab_Id=0; $Tab_Id < 4; $Tab_Id++) 
    {
    	/*E = injured player*/
    	$team = array (
    		0 => "A",
    		1 => "B",
    		2 => "C",
    		3 => "D", 
    		4 => "E",
    	);
     
    	$Table_Id = $team [$Tab_Id];
    	for ($Player_Id=0; $Player_Id < 5; $Player_Id++) 
    	{
    		$query = ("SELECT name, surname FROM joueur Where joueur.team = '{$Table_Id}' AND joueur.numberTabPlayer = '{$Player_Id}' ");
    		$result = mysql_query($query) or die(mysql_error());
    		$res = mysql_num_rows($result);
     
     
    		while($row = mysql_fetch_array($result))
    		{
    			$res= $row['name']." - ".$row['surname'];
    			$obj = array();		
    			$obj [$Tab_Id] = array();
    			$obj [$Tab_Id] [$Player_Id] = $res; 
     
     
     
    		}
    	}
    }
     echo json_encode($obj);
     
     
     
     
    mysql_close();
     
     
     
    ?>
    console "invalid label {"3":[]}

    et quand je fais console.log(data) j obtiens Object{ 3=[0]}

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 64
    Points : 47
    Points
    47
    Par défaut [RESOLU]
    le problème est qu'il faut déclarer le tableau (cf les 2 ligne ci dessous) a l'exterieure des boucle FOR
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $obj = array();		
    $obj [$Tab_Id] = array();

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

Discussions similaires

  1. Retour données par Access
    Par hari37 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/04/2007, 16h34
  2. [INFOS][AJAX]Retour d'expérience
    Par SEMPERE Benjamin dans le forum Servlets/JSP
    Réponses: 17
    Dernier message: 28/09/2006, 17h43
  3. [AJAX] Retour xml
    Par Pollux dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/05/2006, 17h10

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