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

JavaScript Discussion :

Remplir objet avec retour objet json


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    25
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 25
    Par d�faut Remplir objet avec retour objet json
    Salut � tous,
    C'est un peu tordu, donc j'explique:
    J'ai deux fonctions, quand je click sur un select, je selectionne la premi�re (filldep), on v�rifie que Alsace est s�lectionn� puis on appel loadJSON('Alsace.json'). On dit que c'est �gal � list_choix1 et on appel fillvil. Mon pb est que list_choix1 a la valeur nul ou n'est pas un objet. La fonction n'a pas l'air de me renvoyer quelque chose. Pour appeler la seconde fonction il est imp�ratif que list_choix1 soit �gal � une valeur. La faute doit �tre �norme mais la je s�che. De l'aide ......
    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
    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
     
    var list_choix1;
    function loadJSON(fname) 
    {
    	var xhr=createXHR();
    	xhr.open("GET", fname,true);
    	xhr.onreadystatechange=function() 
    	{
    		if (xhr.readyState == 4) 
    		{
    			if (xhr.status != 404) 
    			{
    				return eval("(" + xhr.responseText + ")");
    			} 
    			else 
    			{
     
     
    			}
    		}
    	}
    	xhr.send(null);
    }
    function fillvil(selregion){
    var region = selregion.value;
    seldept=document.getElementById('vil')
     
    while(seldept.options[0]){
    	seldept.removeChild(seldept.getElementsByTagName('option')[0]);
    	}
     
    for(i=0;i<list_choix1[region].length;i++){
       var optdept=document.createElement('option');
    	optdept.value=list_choix1[region][i];
     	optdept.innerHTML=list_choix1[region][i];
     	seldept.appendChild(optdept);
     	}
    }
     
    function filldep(selregion){
    var region = selregion.value;
    seldept=document.getElementById('dept')
     
    while(seldept.options[0]){
    	seldept.removeChild(seldept.getElementsByTagName('option')[0]);
    	}
     
    for(i=0;i<list_choix[region].length;i++){
       var optdept=document.createElement('option');
    	optdept.value=list_choix[region][i];
     	optdept.innerHTML=list_choix[region][i];
     	seldept.appendChild(optdept);
     	}
    if(region=="Alsace") {list_choix1=loadJSON('Alsace.json');}
    fillvil(document.getElementById('dept'));
    }
    A+ St�phane

  2. #2
    R�dacteur
    Avatar de marcha
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2003
    Messages
    1 571
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 1 571
    Par d�faut
    Salut,

    ton return eval("(" + xhr.responseText + ")"); est le return de la
    fonction anonyme associ�e � onreadystatechange et retourne
    ton Json � l'appelant (l'objet xhr), ce n'est pas le return de la
    fonction loadJSON.

    au lieu de faire un return eval..., fait un appel � la fonction
    qui doit mettre � jour ta liste en lui passant le json.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    25
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 25
    Par d�faut
    Merci marcha pour ta r�ponse,
    J'esp�re que tu as saisie mon probl�me.
    Mon pb est de dire :
    list_choix1= (le contenu de mon fichier) sans rien enlever, ni rajouter.
    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
     
    var list_choix1;
    function loadJSON(fname) 
    {
    	var xhr=createXHR();
    	xhr.open("GET", fname,true);
    	xhr.onreadystatechange=function() 
    	{
    		if (xhr.readyState == 4) 
    		{
    			if (xhr.status != 404) 
    			{
    				var data=eval("(" + xhr.responseText + ")");
     
    			} 
     
    		}
    	}
    	xhr.send(null);
     
    }
    J'ai essay� de mettre list_choix1= data dans la fonction mais il fait comme si
    list_choix1 fesait partie de la fonction et ne renvoie donc pas list_choix1=data. Je ne connais pas la longueur de mon fichier, donc je ne vois pas par quel bout le prendre m�me si je comprend bien ce que tu m'a dis.

  4. #4
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    25
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 25
    Par d�faut
    Je pense avoir trouv� quelque chose:
    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
     
    function loadJSON(selection) 
    {
    	var xhr=createXHR();
    	if((selection.value)=="Alsace")    {xhr.open("GET","Alsace.json",true);}
    	if((selection.value)=="Aquitaine") {xhr.open("GET","Aquitaine.json",true);}
    	if((selection.value)=="Auvergne") {xhr.open("GET","Auvergne.json",true);}
    	xhr.onreadystatechange=function() 
    	{
    		if (xhr.readyState == 4) 
    		{
    			if (xhr.status != 404) 
    			{
    				fillvil(xhr.responseText);
     
    			} 
     
    		}
    	}
    xhr.send(null);
    }
    function fillvil(selregion){
    var region = selregion.value;
    seldept=document.getElementById('vil');
     
    while(seldept.options[0]){
    	seldept.removeChild(seldept.getElementsByTagName('option')[0]);
    	}
     
    for(i=0;i<list_choix1[region].length;i++){
       var optdept=document.createElement('option');
    	optdept.value=list_choix1[region][i];
     	optdept.innerHTML=list_choix1[region][i];
     	seldept.appendChild(optdept);
     	}
    }
     
    function filldep(selregion){
    var region = selregion.value;
    seldept=document.getElementById('dept');
     
    while(seldept.options[0]){
    	seldept.removeChild(seldept.getElementsByTagName('option')[0]);
    	}
     
    for(i=0;i<list_choix[region].length;i++){
       var optdept=document.createElement('option');
    	optdept.value=list_choix[region][i];
     	optdept.innerHTML=list_choix[region][i];
     	seldept.appendChild(optdept);
     	}
    loadJSON(document.getElementById('dept'));
    }
    Ce code marche, mais j'ai une question mon fichier fait 10 koctet quand il est sur le seveur, mais quand je le charge depuis le site, il fait plus de 70 koctet car tous mes if sont vrai , et qu'il charge toutes les listes dans mon fichier. Ce code sera t' il trop lourd lorsque j'aurais rempli tous mes fichier json.
    A+ St�phane

  5. #5
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    25
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 25
    Par d�faut
    Erreur de ma part, le code ne marche pas, c'est pour cela que le fichier en ligne �tait si gros. Je cherche donc toujours, si quelqu'un aurait un id�e...
    A+ St�phane

  6. #6
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    25
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 25
    Par d�faut
    J'ai trouv� un lien qui va me permetre de r�soudre mon pb, merci pour votre aide.
    Le lien:http://www.ac-creteil.fr/util/progra...x/tp-ajax.html
    A+ St�phane

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

Discussions similaires

  1. objet literal et objet avec constructeur
    Par hellalaboy dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 27/07/2011, 14h31
  2. [JMX] Appel d'une m�thode distante avec retour d'objet complexe
    Par hugo123 dans le forum API standards et tierces
    R�ponses: 2
    Dernier message: 24/07/2009, 12h18
  3. remplir dataset avec objet
    Par clemse31 dans le forum D�buter
    R�ponses: 0
    Dernier message: 20/05/2009, 18h40
  4. Remplir REF CURSOR avec un objet "Is Table or Record"
    Par jeanjean1984 dans le forum PL/SQL
    R�ponses: 1
    Dernier message: 26/02/2009, 15h06
  5. R�ponses: 2
    Dernier message: 10/12/2008, 02h10

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