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 :

récupération d'attributs


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 6
    Points : 1
    Points
    1
    Par défaut récupération d'attributs
    Bonjour à tous.

    Voilà mon soucis :

    Je travaille sur un plugin pour le logiciel Sketchup et donc je souhaite afficher dans une page HTML une sorte de menu dynamique avec différents boutons. Pour cela, j'ai uniquement besoin d'un attribut nbEtages que je charge grâce à la fonction passFromRubyToJavascript(value). Mais une fois la fonction executée, je n'arrive pas à accéder à cet attribut dans le script HTML.

    Pourtant j'arrive à l'afficher avec la ligne de code : <div id="nbEtages"></div>

    Voici ma page html :

    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
    <html>
     
    <script>
     
    function passFromRubyToJavascript(value) {
    	document.getElementById('nbEtages').innerHTML = value;
    }
     
    </script>
     
    <body>
    	<div id="nbEtages"></div>
     
    <script>
    	nb = getElementById('nbEtages').innerHTML
    	document.write("<form>");
    	for(i=0;i<parseInt(nb);i++){
    	 	if (i==0){
     			string = "Afficher le Rdc";
     		}
     		else{
    	 		string = "Afficher l'étage " + i + '';
     		}
     		document.write("<input type=\"button\" value=" + "\"" + string + "\"" + " onclick=\"onClickAfficher(" +i+'' + " )\" >");
     	}
     	document.write("</form>");	
     
    </script>
     
    </body>
    </html>


    J'ai grand besoin de votre aide!

    Merci !

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById
    2- Il n'y a pas de nombres dans ton div nbEtages lequel tu veux récupérer via innerHTML.

    A+.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    La ligne <div id="nbEtages"></div> me sert juste à initialiser la valeur.

    En fait, dans mon code Ruby je vais calculer la bonne valeur et exécuter le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      my_dialog = UI::WebDialog.new("Selection Info", false, "Selection Info", 200, 200, 200, 200, true)
      my_dialog.add_action_callback("afficher_buttons") do |web_dialog,action_name|
      total_selected = batiment.access_etages.length
      js_command = " passFromRubyToJavascript("+ total_selected.to_s + "); }"
      web_dialog.execute_script(js_command)
      end
     
      # Find and show our html file
      html_path = File::dirname(__FILE__) + 'affichage.html'
      my_dialog.set_file(html_path)
      my_dialog.show()
    Ce que je ne comprends pas, c'est que la ligne <div id="nbEtages"></div> affiche la bonne valeur 'nbEtages' mais dans le script suivant je ne récupère rien

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    tu ne serais pas en train de melanger php et js ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Non je ne pense pas.

    Tout ce que je souhaite c'est initialiser un attribut avec une fonction JavaScript puis le récupérer dans mon code html.

    Ceci est sensé l'initialiser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('nbEtages').innerHTML = value;
    Ceci est sensé le récupérer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nb = getElementById('nbEtages').innerHTML
    Je débute en JavaScript donc j'avoue connaître quelques difficultés...

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nb = document.getElementById('nbEtages').innerHTML

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Même sans cette grossière erreur, ça ne marche pas.

    En fait je vais ré-expliquer le problème.

    Mon application peut partager des informations avec la page html uniquement en exécutant un script, comme la fonction passFromRubyToJavascript(value), le String transféré étant value.

    je souhaite simplement que le script définisse un attribut, et qu'ensuite dans le <body> </body> je puisse le récupérer.

    Je ne sais pas comment je dois initialiser l'objet et comment le rappeler, notamment si je dois utiliser la fonction createElement, ou getElementById ou autre...

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    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
    <html>
     
    <script>
     
    function passFromRubyToJavascript(value) {
    	document.getElementById('nbEtages').innerHTML = value;
    }
     
    </script>
     
    <body>
    	<div id="nbEtages">3</div>
     
    <script>
    	nb = document.getElementById('nbEtages').innerHTML
    	document.write("<form>");
    	for(i=0;i<parseInt(nb);i++){
    	 	if (i==0){
     			string = "Afficher le Rdc";
     		}
     		else{
    	 		string = "Afficher l'étage " + i + '';
     		}
     		document.write("<input type=\"button\" value=" + "\"" + string + "\"" + " onclick=\"onClickAfficher(" +i+'' + " )\" >");
     	}
     	document.write("</form>");	
     
    </script>
     
    </body>
    </html>

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Ce qui se passe c'est que la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="nbEtages">3</div>
    va bien mettre à jour la valeur nbEtages en affichant une autre valeur que 3.

    Mais la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nb = document.getElementById('nbEtages').innerHTML
    va charger à chaque fois la valeur 3.

  10. #10
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Re,

    La fonction passFromRubyToJavascript qui initialise la valeur du div n'est jamais appelé, c'est pour ça que j'ai mis une valeur hardcoded 3 pour corriger ta ton code qui va générer les boutons.

    A+.

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Elle est appelée de l'extérieur par mon script Ruby. Et elle met parfaitement à jour la valeur affichée par : <div id="nbEtages">0</div> mais pas le "menu" dynamique.

    L'application est en fait un plugin Sketchup codé en Ruby, je pense que je devrais chercher plutôt dans Sketchup pour trouver une solution

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/05/2008, 15h28
  2. Réponses: 3
    Dernier message: 06/02/2008, 15h06
  3. [RegEx] Récupération d'attribut HTML
    Par juJuv51 dans le forum Langage
    Réponses: 3
    Dernier message: 04/02/2008, 17h48
  4. [DOM XML] Récupération des attributs dans un flux xml
    Par opeo dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 11/04/2007, 17h35
  5. Réponses: 4
    Dernier message: 26/04/2005, 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