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 :

Dispatch files sur plusieurs fenêtres et appel ajax ou innerHTML


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 22
    Points : 12
    Points
    12
    Par défaut Dispatch files sur plusieurs fenêtres et appel ajax ou innerHTML
    salut à tous et toutes, petite cole du 1avril en javascript + prototype.js

    comme vous vous en douter, y'a un truc qui cloche..<= hahaha(humour de premier avril)

    sinon, le problème qu'est sencé résoudre mon script, est :
    j'ai une suite de fichier et plueisuer fenetre possible d'affichage, rien de bien méchant (a-priori)

    un appel Ajax/prototype, new Ajax.updater avec en target la div-fenetre de publication du fichier .html

    la fonction = buttonvolet1(adr) = est appelée par un bien brave bouton (input, ou autre)

    mais, mais, impossible de faire cette publication, chaque fenêtre a son bouton propre, avec un style.display = none/block switchable...

    bref tant que que je n'ai pas changé de fenêtre, (le site s'ouvre sur la fen ('A20', et affiche avec 'A21')) l'apel ajax ramène correctement le fichier et le publie dans la div 'A21'... mais si je passe au autres fenêtre (A30 | A40 | A50) et demande de publier dans le sous-fenetre (A31 | A41 | A51)

    et bien, ça ne marche plus du tout, pourtant, ma fenêtre de control afficher bien le n° de var x, zzz[x], et adr... mais ne renvoie rien ni n'affiche rien... tout est bon, l'adresse est aussi correcte qu'avant le changement de fenêtre...

    l'appel ajax est envoyé a python3.4(on en sait jamais, mais cela ne semble pas venir de là)

    j'ai éssayé plusieurs méthode, dont avec new Ajax.request, une div unique de renvoie puis un dispatch de la requete en fin d'appel ajax... onComplete... et un ('div').innerHTML = requeste... (spa du code là)

    une petite idée du problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function Buttonvolet1(adr){
     
             zzz = ['A21','A31','A41','A51'];                          // 'id' nom de fenetre
             var x = zzz.indexOf($('v20').innerHTML);            // 'id' de la fenetre en cours
     
             if (x == 0) { new Ajax.Updater('A21','../dico.py/readico', {method: 'get', parameters:{adn:adr} }); }
             if (x == 1) { new Ajax.Updater('A31','../dico.py/readico', {method: 'get', parameters:{adn:adr} }); }
             if (x == 2) { new Ajax.Updater('A41','../dico.py/readico', {method: 'get', parameters:{adn:adr} }); }
             if (x == 3) { new Ajax.Updater('A51','../dico.py/readico', {method: 'get', parameters:{adn:adr} }); }
             if (x > 3) { toH('v50',"c'est ma tournée") } else { toH('v50', x +' || ' + zzz[x] +"  || "+ adr) }
    toH => function javascript protoypejs permettant d'afficher (innerHTML) une data dans un div (ici de control)

    merci d'avance pour vos idées, ou solutions..

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Tout ça est un peu confus, tu parles de fenêtres et de sous-fenêtres, on ne sait pas exactement ce que tu entends par ces termes…Et ça m'a l'air assez capillotractogène

    Je ne saurais trop te conseiller dans un premier temps d'ouvrir ta console (F12) et d'aller voir dans l'onglet réseau si les requêtes Ajax passent correctement et si les réponses sont celles que tu attends ; et d'utiliser console.log dans (ou à la place de) ta fonction toH, ce qui te permettra de voir tes messages dans l'onglet console de la console (redondance bonjour) plutôt que dans un innerHTML pas confortable.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    hm, tout devrait fonctionner, y'a rien de bien méchant la-dedans... enfin javascript...

    le problème "manifeste" est qu'il se refuse a tester le nom de l'id de la div et de la comparer... un 'A31' n'est pas un 'A31' il me renvoie toujours -1 pour chaque id de fenêtre testée... j'ai ma liste(array) bien propre, j'appelle une div contenant l'id de la div en cours sous format string... donc pas de soucis a-priori... sauf que le zzz.indexOf('A31') renvoie uniquement -1... soit l'id n'est pas élément de zzz

    mais comme le tout fonctionne très bien avec un seul appel Ajax (seulement la div('A21') par ex) je viens voir si quelqu'un est déjà tombé sur quelque chose d'équivalent ?? parceque c'est assez surprenant qu'il ne puisse switcher un contenu sur plusieurs page/div

  4. #4
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Citation Envoyé par Quetzal Voir le message
    le nom de l'id de la div
    Citation Envoyé par Quetzal Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zzz.indexOf($('v20').innerHTML);
    M’est avis que tu te mélanges les pinceaux entre l’id de tes divs et leur contenu… Ouvre ta console, on va vérifier ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var div = $('v20');
    console.log('id', div.id);               // -> attribut id="…"
    console.log('innerHTML', div.innerHTML); // -> contenu
    Ou sinon c’est peut-être une histoire d’espaces. Essaye trim.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. Réplication des données sur plusieurs fenêtres
    Par Niiws dans le forum VB.NET
    Réponses: 0
    Dernier message: 03/03/2016, 23h01
  2. Travail sur plusieurs fenêtres, difficultés
    Par Virthuss dans le forum C++
    Réponses: 3
    Dernier message: 20/03/2013, 15h49
  3. Traduction dynamique sur plusieurs fenêtres
    Par truboy dans le forum Qt
    Réponses: 2
    Dernier message: 04/10/2010, 08h11
  4. Comment récupéré les données sur plusieurs fenêtres ?
    Par bon4000 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 17/09/2007, 17h58
  5. [AJAX] Effectuer plusieur appel ajax
    Par shwin dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/10/2005, 16h40

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