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 :

J'en perds mon latin (pas très élevé, c'est vrai)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut J'en perds mon latin (pas très élevé, c'est vrai)
    Bonsoir,

    voici un code qui marche très bien (les variables h_xxx sont des variables système) (et il y a des fonctions que j'ai définies ailleurs), mais quand je l'encapsule dans une fonction et que j'appelle celle-ci, j'obtiens une erreur js (mais pas si je mets en commentaires la boucle do-while). Peut-on m'éclairer là-dessus ?

    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
    var sesainfo = new Array(3);
    sesainfo[0] = new Array(11);
    sesainfo[1] = new Array(11);
    sesainfo[2] = new Array(11);
    var sesaArray = new Array();
    if(h_CurrentSkinType=='h_Edit') {
    document.write("Use this space to provide information about your experience, interests, favorite links, etc." );
    document.write("<table border=0 width='100%'><tr><td class='h-fieldHeaderEdit-bgtext'>");
    document.write("Name of this page<br><"+"input size='50' type='text' name='h_getName'>");
    document.write("</td></tr><tr><td>&nbsp;</td></tr><tr>");
    document.write("<td class='h-fieldHeaderEdit-bgtext'>");
    document.write("</td></tr></table>");
    } else {
    sesaArray=loadsesa(h_LastEditorDistinguishedName);
    var idNotes=extract_NotesID(h_LastEditorDistinguishedName);
    var ind=0;
    var comp;
    do {
    load_personal_data(sesaArray,ind);
    comp=extract_idnotes_sansfin(sesainfo[ind][8]);
    ind++;
    } while (comp!=idNotes);
    display_photo(sesainfo[ind-1][9],sesainfo[ind-1][1],sesainfo[ind-1][0],ind-1);
    //display_info(sesainfo[ind-1]);
    }

  2. #2
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Peut-être qu'il y a une erreur grosse comme une maison dans le code mais étant fatigué, je n'arrive pas à me concentrer. Pourriez-vous nous donner plus de code (load_personal_data() et extract_idnotes_sansfin()) ainsi que le message d'erreur ?

  3. #3
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    problème de variables globale non définit ?

  4. #4
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Message d'erreur : juste, "il y a des erreurs sur la page".
    load_personal_data :
    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
    function load_personal_data(sesa,ind){
    var URL,codesesa,xmlsesa;
    var topEntry,entry;
    var nomemploye,prenomemploye,adresseemploye,villeemploye,siteemploye,telemploye,cellemploye,mailemploye,idnotesemploye,urlphotoemploye;
    //for (i=0;i<(sesa.length);i++) { // parcourir tous les codes SESA
    // construire l'URL avec les infos donn&eacute;es par le code SESA(du type :
    // http://ids.schneider-electric.com/global/corp/ecd.nsf/xmlemployeesactivebyguid?readviewentries&amp;StartKey=SESA21805&amp;count=1)
    URL='http://ids.schneider-electric.com/global/corp/ecd.nsf/xmlemployeesactivebyguid?readviewentries'+'&'+'StartKey='+sesa[ind]+'&amp;count=1';
    // appeler l'URL
    codesesa="h_sesaList";
    xmlsesa = new ActiveXObject("Microsoft.XMLDOM");
    xmlsesa.async="false";
    xmlsesa.load(URL); // appel URL du code XML à partir du code SESA
    //document.write("URL appel&eacutee.<br>");
    //pour chq item int&eacute;ressant,
    // r&eacute;cup&eacute;rer la valeur
    topEntry=xmlsesa.selectSingleNode("viewentries");
    entry=xmlsesa.selectSingleNode("viewentries/viewentry");
    var sUnid2 = entry.getAttribute('unid');
    nomemploye=entry.childNodes.item(2);
    prenomemploye=entry.childNodes.item(4);
    adresseemploye=entry.childNodes.item(26);
    villeemploye=entry.childNodes.item(30);
    siteemploye=entry.childNodes.item(25);
    telemploye=entry.childNodes.item(14);
    cellemploye=entry.childNodes.item(16);
    mailemploye=entry.childNodes.item(10);
    idnotesemploye=entry.childNodes.item(9);
    urlphotoemploye=entry.childNodes.item(39);
    buemploye=entry.childNodes.item(19);
    sesainfo[ind][0] = nomemploye.text;
    sesainfo[ind][1] = prenfieldNames.REMOTE_USER omemploye.text;
    sesainfo[ind][2] = adresseemploye.text;
    sesainfo[ind][3] = villeemploye.text;
    sesainfo[ind][4] = siteemploye.text;
    sesainfo[ind][5] = telemploye.text;
    sesainfo[ind][6] = cellemploye.text;
    sesainfo[ind][7] = mailemploye.text;
    sesainfo[ind][8] = idnotesemploye.text;
    sesainfo[ind][9] = urlphotoemploye.text;
    sesainfo[ind][10] = buemploye.text;
    //return sesainfo;
    }
    extract_idnotes_sansfin :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function extract_idnotes_sansfin(ch)
    {
    indarobas=ch.indexOf("@");
    ch=ch.substring(0,indarobas);
    return(ch);
    }

  5. #5
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    En cliquant sur le triangle jaune de l'erreur, il affiche une fenêtre avec un peu plus de détails sur l'erreur Javascript.

    Je me pose des questions sur ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function extract_idnotes_sansfin(ch)
    {
       indarobas=ch.indexOf("@");
       ch=ch.substring(0,indarobas);
       return(ch);
    }
    Imaginons qu'il n'y ai pas d'arobase, le substring va chercher de la position -1 à 0 et va renvoyer une chaine "vide". Est-ce bien ce que vous désiriez ?

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Merci pour l'info du triangle jaune : je ne connaissais pas.
    sinon, pas de lézard pour l'arobase : il y en a forcément un.
    Enfin, j'ai vu qu'il bloquait sur des fonctions qui font appel à des variables système que je ne maîtrise pas (tout ça est sur un site intranet), mais ce qui me surprend, c'est que quand le code n'est pas dans une fonction, ça marche bien...

  7. #7
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Je rejoins l'idée du Chômeur, peut-être que en mettant le code dans une fonction, vous rendez locales des variables qui aurait du être globales car elles sont utilisées par d'autres fonctions ?!

    Détectez les variables en question et laissez-les globales.

Discussions similaires

  1. <table> : J'y perd mon latin !
    Par zakuli dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 07/02/2009, 16h32
  2. Problème de typage: j'en perds mon latin
    Par Garulfo dans le forum Caml
    Réponses: 7
    Dernier message: 10/06/2008, 13h22
  3. getElementsByName - j'y perds mon latin !
    Par herve42 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/08/2007, 20h04
  4. Réponses: 6
    Dernier message: 23/05/2005, 15h38

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