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

Bibliothèques & Frameworks Discussion :

Evaluation de script [Prototype]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 87
    Points
    87
    Par défaut Evaluation de script
    Bonjour,

    Je suis actuellement sûr un projet qui utilise plusieurs langages.

    Mon problème actuel est au niveau de l'utilisation de prototype.js.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function getIndex() {
    	var myAjax = new Ajax.Updater(
    		"Menus",
    		"menus.php",
    		{method: 'get'}
    	);
    }
    Cette fonction appelle menus.php qui lui me renvoie et ce de manière correct:
    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
    <script type="text/javascript">
     
    //<![CDATA[
     
    	objTreeMenu_1 = new TreeMenu("images", "objTreeMenu_1", "_self", "treeMenuDefault", true, false);
     
    	 newNode = objTreeMenu_1.addItem(new TreeNode('Root', 'Etat_vert.png', null, true, true, '', '', 'Etat_vert
     
    .png'));
     
    	 newNode_1 = newNode.addItem(new TreeNode('Communes', 'Etat_vert.png', null, false, true, '', '', 'Etat_Vert
     
    .png'));
     
    	 newNode_1.setEvent('onclick', 'getContent(\'pages/communes.php\',1);');
     
    	 newNode_1_1 = newNode_1.addItem(new TreeNode('Transports', null, null, false, true, '', '', null))
     
    ;
     
    	 newNode_1_1.setEvent('onclick', 'getContent(\'pages/transports.php\',2);');
     
    	 newNode_1_1_1 = newNode_1_1.addItem(new TreeNode('Generals', null, null, false, true, '', '', null
     
    ));
     
    	 newNode_1_1_1.setEvent('onclick', 'getContent(\'pages/generals.php\',3);');
     
    	 newNode_2 = newNode.addItem(new TreeNode('Personels', 'Etat_vert.png', null, false, true, '', '', 'Etat_vert
     
    .png'));
     
    	 newNode_2.setEvent('onclick', 'getContent(\'pages/personels.php\',4);');
     
    	 newNode_3 = newNode.addItem(new TreeNode('Materials', 'Etat_vert.png', null, false, true, '', '', 'Etat_vert
     
    .png'));
     
    	 newNode_3.setEvent('onclick', 'getContent(\'pages/materialstorages.php\',5);');
     
    	objTreeMenu_1.drawMenu();
     
    	objTreeMenu_1.writeOutput();
     
    	objTreeMenu_1.resetBranches();
     
    // ]]>
     
    </script>
    Ce code étant generé depuis la class PEAR HTML_TreeMenu.

    Mon but étant, logiquement, d'afficher ce menu dans le div "Menus".

    Le problème est que dans le div Menus, il n'y a rien.

    Donc j'ai fait quelque recherche et j'ai vu le paramètre: evalScripts pour ajax.updater

    Quand je le force à true, alors ne voie plus que mon treeview et ce en fullpage. Quand je vais voir le source, je n'est que le résultat du script de HTML_TreeMenu.

    Merci de me donner un coup de main

  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 : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Ajax.Updater permet de modifier le contenu d'un élément html avec ce qui est reçu du serveur. Dans ton cas il n'y a pas de contenu html mais juste un script. Donc
    je n'utiliserai pas Ajax.Updater qui risque simplement de vider le contenu de ton
    menu puisqu'il n'y a pas de html en retour.

    Tu pourrai essayer avec Ajax.Request. Sinon comment fonctionne objTreeMenu_1.writeOutput(); ? est-ce qu'il modifie le DOM dynamiquement ou
    est-ce qu'il fait des document.write ? dans le deuxième cas cela serait délicat car
    le document est clos. (cela expliquerait qu'il remplace tout le code existant)
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  3. #3
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 87
    Points
    87
    Par défaut
    Hello,

    J'ai bien essayé avec ajax.request, j'arrivai au même résultat.

    Il fait bien des document.write();

    Je n'est pas bien compris le principe du 'document clos' que tu me parle.

    Que puis-je faire pour contourner ce problème ?

    Merci de ta réponse!

  4. #4
    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 : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    document.write("du code html") permet de créer du code html depuis
    javascript pendant le traitement de la page par le navigateur ou dans
    un document 'vierge'. Par contre cela ne permet pas de modifier une
    partie du code html (ce qui se fait via le DOM avec des méthodes comme createElement)

    un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <html>...
    ...
    <script type='text/javascript'>
    document.write("<strong>Hello</strong>");
    </script>
    ...
    </html>
    Dans cet exemple le script est exécuté pendant que le navigateur traite
    la page (avant son affichage complet). Pendant ce traitement le document
    est "ouvert" et à la fin il est clos.

    document.write permet donc de créer du html a partir de chaine de caractère
    javascript.

    L'usage d'un document.write après coup écrase le document existant visiblement

    Je pense que ton script de menu est prévu pour être utilisé de la sorte, en
    plaçant le script dans la zone du menu.

    Maintenant il faudrait que tu explique ton objectif pour voir comment contourner
    le problème.
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  5. #5
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 87
    Points
    87
    Par défaut
    Hello,

    Merci pour ton explication, je comprend mieux le problème.

    Le principe que j'aimerai mettre en place est lors d'un enregistrement d'un form, j'exécute l'enregistrement de ce form et j'aimerai que le treeview se recrée car il sera un peu modifier (Nouvelle entrée, changement de quelque paramètre).

    Tout cela sans rechargement bien sûr

    Merci de ton aide!

  6. #6
    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 : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut, je pense qu'il te faudrait utiliser un tree view adapté pour Ajax
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  7. #7
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 87
    Points
    87
    Par défaut
    C'est bon merci de ton aide, m'en suis sortie en modifiant la class pear pour qu'il ne fasse plus un write mais qu'il me donne le resultat que je peux mettre où je veux après.

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

Discussions similaires

  1. [Prototype] Evaluer du script contenu dans une chaîne JSON
    Par Ben Gates dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 01/01/2012, 17h50
  2. [Prototype] Evaluer un script avec Ajax.Updater
    Par razmous dans le forum Bibliothèques & Frameworks
    Réponses: 8
    Dernier message: 28/12/2009, 21h29
  3. Evaluation du temps d'execution des script
    Par Nico87 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/07/2009, 14h34
  4. Script PL/SQL : Evaluation d'une variable
    Par rinuom dans le forum PL/SQL
    Réponses: 7
    Dernier message: 20/06/2008, 10h57
  5. Evaluer la vitesse d'un script ?
    Par reski dans le forum Langage
    Réponses: 3
    Dernier message: 19/06/2007, 00h31

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