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 :

Fonction Ajax.InPlaceEditor inopérante [script.aculo.us]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Tsu
    Tsu est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 24
    Par défaut Fonction Ajax.InPlaceEditor inopérante
    Bonjour,
    J'ai un petit soucis dans l'utilisation d'une fonction de scriptaculous : Ajax.InPlaceEditor.

    En réalité ce petit code (la version multiligne) fonctionne très bien sauf que la configuration de mon site en développement est problématique.
    J'ai donc un site classique avec un menu. Lorsque je clique sur un lien du menu, j'ouvre une page en la chargeant dans un DIV, sans recharger la page grâce à du AJAX :

    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
    function envoieRequete(url,id)
    {
    var xhr_object = null;
    var position = id;
    if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
    else
    if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
     
    // On ouvre la requete vers la page désirée
    xhr_object.open("GET", url, true);
    xhr_object.onreadystatechange = function(){
    if ( xhr_object.readyState == 4 )
    {
    // j'affiche dans la DIV spécifiées le contenu retourné par le fichier
    document.getElementById(position).innerHTML = xhr_object.responseText;
    }
    }
    // dans le cas du get
    xhr_object.send(null);
     
    }
    Le soucis c'est que du coup le Ajax.InPlaceEditor ne passe pas sous le site vu que le code source de la page ne contient pas la page chargée par le code précédent ! (j'ai juste mon message par défaut dans le div, en attendant qu'un lien soit cliqué).
    Alors que si j'ouvre la page à part dans mon naviguateur, donc hors du site, le Ajax.InPlaceEditor fonctionne parfaitement !

    ya t-il une solution ? ou vais-je devoir charger mes pages par un classique Include en php pour résoudre le problème ?

    Merci beaucoup,
    Séb.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    A priori, j'imagine que tu initialises InPlaceEditor au chargement de la page, donc lorsque tu mets à jour avec Ajax, les nouveaux éléments sont bien dans la page, mais ils ne sont pas pris en compte par InPlaceEditor, il faut donc initialiser ta fonction pour les nouveaux éléments.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Tsu
    Tsu est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 24
    Par défaut
    Bonjour,

    Tout d'abord merci d'avoir déplacé mon sujet, je n'avais pas vu qu'il existait un forum dédié à Prototype et Scriptaculous.

    Pour répondre à ta question, le InplaceEditor est initialisé à la volée sur ma page (qui est à part), qui est chargée dans le DIV grâce au code AJAX cité dans mon premier message, de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div id="fc_gauche"><p id="fc_gauche_edit"><?php echo $row_jeFanclubAdresse['texte']; ?></p></div>
      <script type="text/javascript">
     new Ajax.InPlaceEditor('fc_gauche_edit', '/demoajaxreturn.html', {rows:15,cols:40});
    </script>
    (nb: je sais pour '/demoajaxreturn.html', je dois le remplacer, ce n'es tpas là que réside mon soucis )

    De fait, qu'entends-tu par initialiser la fonction pour les nouveaux éléments ?
    Je n'ai jamais touché à Scriptaculous ni à prototype, très peu au JS, je suis plutôt PHP

    Si tu/vous as(vez) besoin d'autre portions de code, je suis là.

    Merci d'avance,
    Sébastien

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    As-tu précisé lors de ta requête Ajax (pour actualiser ta div) qu'il faut évaluer les scripts ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Tsu
    Tsu est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 24
    Par défaut
    Hmmm et bien non je ne pense pas, le code AJAX pour actualiser ma DIV est exactement celui que j'ai copié/collé dans mon premier message.
    Je crains ne pas savoir comment faire pour demander l'évaluation des scripts

  6. #6
    Tsu
    Tsu est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 24
    Par défaut
    J'ai trouvé ça : http://www.xorax.info/blog/news/159-...bal-scope.html qui apparemment serait la solution dont tu me parle, mais je ne sais absolument pas l'utiliser, comme je lai dit, je suis un total débutant en PHP
    Peut-tu me dire comment utiliser cette portion de code s'il te plait ?

    Merci d'avance,
    Séb

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

Discussions similaires

  1. [debutante] fonctions ajax
    Par mun_a dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/08/2007, 18h48
  2. Réponses: 6
    Dernier message: 13/07/2007, 11h46
  3. [AJAX] Envoi ou non d'un formulaire avec une fonction AJAX
    Par ohhh.gringo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/05/2007, 11h47
  4. [AJAX] Rappel fonction ajax
    Par Phenomenium dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/01/2007, 16h02
  5. [AJAX] aide sur fonction ajax navigation
    Par speedylol dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/11/2006, 14h17

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