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] La fonction eval transforme ma string en objects


Sujet :

AJAX

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut [AJAX] La fonction eval transforme ma string en objects
    Bonjour � tous,

    J'utilise json pour remplacer le contenu de mes listes d�roulantes afin que �a fonctionne avec tous les browsers (surtout avec IE).

    Pour cela, j'utilise ce 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
    22
    23
    24
     
    switch($arr[0])
    	{
    		case 'neuro_irm_emplacements':
    		{
    			$sql = "SELECT * FROM ".$arr[0]." WHERE ID_regions = ". $arr[1]." ORDER BY Nom";
    		}
    	}
     
    	$req = mysql_query($sql);
     
    	$return = '';
    	$return.= '[{valeur :"", text: "Places"},';
     
    	while($res = mysql_fetch_array($req))
    	{
    		$return.= '{valeur:'.$res["ID"].',text:"'. $res["Nom"].'"},';
     
     
    	}
    //je remplace la derniere virgule par la ) dans la variable $return		
    	$return=preg_replace("/,$/","]",$return);
    	//je retourne le rsultat a AJAX
    	echo $return;
    retourne donc une chaine � js de ce genre :

    [{valeur :"", text: "Places"},{valeur:13,text:"Brainstem"},{valeur:11,text:"Cereb

    Hemis"},{valeur:12,text:"Cereb Angle"},{valeur:15,text:"Intraventriculaire"},{valeur:14,text:"Spinal Cord"},{valeur:10,text:"Vermis"}]
    J'ai ensuite ce code :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    LeRetour = trim(xhr.responseText);
    			emptySel(document.getElementById(arr[2]));
    			MesOption=eval("(" + LeRetour + ")");
    Jusqu'� maintenant, �a fonctionnait parfaitement.

    Mais une alerte de MesOption m'indique ceci :

    [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
    J'avoue ne pas bien comprendre.

    On m'a d�j� dit que "eval" �tait d�pr�ci�, j'en profite donc pour vous demander si il n'y a pas un autre moyen de proc�der ?

    Je vous en remercie d'avance.

    beegees

  2. #2
    Membre �m�rite Avatar de Atomya Rise
    Femme Profil pro
    D�veloppeuse Web
    Inscrit en
    F�vrier 2009
    Messages
    443
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activit� : D�veloppeuse Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 443
    Par d�faut
    (vu sur le chat)

    en testant ceci :
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    alert(MesOption[0].text);

    on a pu v�rifier que l'on r�cup�rer le 1er �l�ment du tableau, donc ton code fonctionne.

    Si tu obtiens une suite de object, ceci est normal, c'est comme-ci tu faisait un echo d'une variable sans lui passer le tableau...

    exemple qui te renverra un array :
    exemple qui te renverra ton tableau :
    En gros, l�, en faisant ton alert, tu n'affiche que le type de la structure...

    Donc, la solution trouv� ensemble est d'ajouter l'�l�ment de ton tableau qui est .text :

    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    LeTexte = MesOption[key].text;


  3. #3
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut
    Re,

    J'ai trouv� avec l'aide de Atomya Rise.

    Il fallait juste mettre :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    LeTexte = MesOption[key].text;
    au lieu de

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    LeTexte = MesOption[key];
    Une fois de plus, un probl�me s'est r�solu en 5 minutes sur le chat, vive anochat

    beegees

  4. #4
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    oui eval c'est pas le pied cherche sur le forum
    JSON.parse
    il y a pas mal de sujet

    quant � ton alert c'est comme si en php tu faisait
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    $a = array(array('a'=>1), array('a'=>2), array('a'=>3));
    echo $a
    cela ne t'affichera pas une chaine de caract�re
    de m�me n'affichera pas le contenu de l'objet a[0]


    un point sur ton php car c'est vraiment pas top ce que tu fais

    D�j� c'est beurk est je connais des boit o� to appli ne passerait pas en qualif juste � cause de �a

    Jamais de
    Mais c'est sur ta fa�on de le traiter qui n'est pas super
    construire une chaine � la main c'est dangereux et peut �volutif.

    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
    switch($arr[0])
    {
      case 'neuro_irm_emplacements':
      {
        $sql = "SELECT ID AS valeur, Nom AS text FROM ".$arr[0]." WHERE ID_regions = ". $arr[1]." ORDER BY Nom";
      }
    }
     
    $req = mysql_query($sql);
    $result = array();
    while($res = mysql_fetch_array($req)){
      $result.push($res);
    }
    echo json_encode($result);

    A+JYT

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 3
    Dernier message: 18/02/2013, 05h15
  2. Transformer un String en d�cimal,fonction personelle.
    Par idefix_11 dans le forum D�buter
    R�ponses: 15
    Dernier message: 08/02/2008, 10h14
  3. Transformer une String en fonction
    Par Jevil dans le forum MATLAB
    R�ponses: 12
    Dernier message: 07/02/2008, 23h46
  4. [String] �quivalent de la fonction eval() en javascript
    Par jeyce dans le forum API standards et tierces
    R�ponses: 5
    Dernier message: 01/09/2004, 08h42
  5. Transformer un String en InputStream
    Par felix79 dans le forum Entr�e/Sortie
    R�ponses: 5
    Dernier message: 07/07/2004, 12h18

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