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 :

toolbox/ajax


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut toolbox/ajax
    bonjour,
    j'utilise une toolbox :
    le script :
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    /**
     * This class is able to manage BBCodes
     */
    TextArea = function (name) {
        this._init(name);
    }
     
    /**
     * TextArea's constructor
     */
    TextArea._init = function (name) {
    	this.name = name;
    	this.textarea = document.getElementById(this.name);
    }
     
    /**
     * The effective tag operation
     */
    TextArea.tag = function (bStart,bEnd) {
    	this.textarea.focus();
    	if (typeof(document.selection) != 'undefined') {
    		return this.tagIE(bStart,bEnd);
    	} else {
    		return this.tagGecko(bStart,bEnd);
    	}
    }
     
    TextArea.tagIE = function (bStart,bEnd) {
    	var range = document.selection.createRange();
    	var insText = range.text;
    	range.text = bStart + insText + bEnd;
    	range = document.selection.createRange();
    	if (insText.length == 0) {
    		range.move('character', -(bEnd.length));
    	} else {
    		range.moveStart('character', bStart.length + insText.length + bEnd.length);
    	}
    	range.select();
    }
     
    TextArea.tagGecko = function (bStart,bEnd) {
    	var start = this.textarea.selectionStart;
    	var end = this.textarea.selectionEnd;
    	var insText = this.textarea.value.substring(start, end);
    	this.textarea.value = this.textarea.value.substr(0, start) + bStart + insText + bEnd + this.textarea.value.substr(end);
    	var pos = insText.length ? start + bStart.length + insText.length + bEnd.length : start + bStart.length;
    	this.textarea.selectionStart = pos;
    	this.textarea.selectionEnd = pos;
    }
     
    /**
     * Automatically tag start and end by using a simple open/close tag
     */
    TextArea.simpleTag = function (tag) {
    	var sl = this.textarea.scrollLeft;
    	var st = this.textarea.scrollTop;
    	this.tag('['+tag+']','[/'+tag+']');
    	this.textarea.scrollLeft = sl;
    	this.textarea.scrollTop = st;
    }
     
    /**
     * Automatically tag start and end by using an open/close tag with a param asked to user
     * by a prompt
     */
    TextArea.promptTag = function (tag,message) {
    	rep = prompt(message);
    	if (rep.length)
    	{
    		var sl = this.textarea.scrollLeft;
    		var st = this.textarea.scrollTop;
    		this.tag('['+tag+'='+rep+']','[/'+tag+']');
    		this.textarea.scrollLeft = sl;
    		this.textarea.scrollTop = st;
    	}
    }
     
    /**
     * Smilies
     */
    function add_smilie(code) {
    	document.getElementById('c_content').value+=' '+code;
    }
    la toolbox simplifiée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <span id="toolbox">
     <input type="button" value="b" onclick="t_content.simpleTag('b');" />
    </span>
    initialiser la textarea :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    t_content = new TextArea('c_content');
    j'ai un problême avec ajax :
    lorsque je charge : [ la toolbox suivie de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script language="javascript">
    t_content = new TextArea('c_content');
    </script>
    ] - le code précédent étant contenu dans un fichier.js déjà chargé par la page qui appelle ajax -avec ajax, la textarea n'est pas initialisée...
    comment celà se fait-il ?
    merci
    phcorp

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut précision
    en gros le code javascript chargé grace à ajax n'est pas exécuté...
    ma méthode :

    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
    function file(fichier)
    {
    	if(window.XMLHttpRequest) // FIREFOX
    	{
    		xhr_object = new XMLHttpRequest();
    	}
    	else if(window.ActiveXObject) // IE
    	{
    		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    	}
    	else
    	{
    		return(false)
    	}
    	xhr_object.open("GET", fichier, false);
    	xhr_object.send(null);
    	if(xhr_object.readyState == 4)
    	{
    		return(xhr_object.responseText);
    	}
    	else
    	{
    		return(false);
    	}
    }
     
    function afficher(nom)
    {
    	document.getElementById(divtexte).innerHTML = unescape(file(lienmodify));
    }
    je sais que ce n'est pas vraiment de l'ajax puisque ce n'est pas asychrone
    pouvez vous me dire quelle est mon erreur ? merci

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    y a déjà des imprécisions dans le code que tu utilises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	this.textarea = document.getElementById(this.name);
    Il s'agit de name ou d'id ??
    Ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function afficher(nom)
    {
    	document.getElementById(divtexte).innerHTML = unescape(file(lienmodify));
    }
    divtexte est une variable globale ?
    Si oui : comment est-elle alimentée ?
    Sinon, ça serait pas plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function afficher(nom)
    {
    	document.getElementById('divtexte').innerHTML = unescape(file(lienmodify));
    }


    A+

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    bonjour,

    Bonjour,
    y a déjà des imprécisions dans le code que tu utilises :
    Code :

    this.textarea = document.getElementById(this.name);

    Il s'agit de name ou d'id ??
    il s'agit de l'id

    divtexte est une variable globale ?
    Si oui : comment est-elle alimentée ?
    alors non, ce n'est pas une variable globale, en gros tu as un lien comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    print '<div id="dl_'.$var_001->id.'">';
            print '<a href="javascript:modifier(\''.$var_001->id.'\')">';
            print '<img border="0" alt="Edit" src="res/edition/edit.gif" />';
            print '</a>';
    print '</div>';
    ?>
    et la fonction est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function modifier(id)
    {
    	var Result1 = 'mot de passe';
    	var lienmodify = 'mods/downloads/downloads_verif.php?act=edit_2&id='+escape(id)+'&pass='+escape(Result1);
    	var idelement = 'dl_'+escape(id);
    	document.getElementById(idelement).innerHTML = unescape(file(lienmodify));
    }
    le contenu de la div est chargé, seulement, c'est le javascript de la toolbox qui ne fonctionne pas...
    merci de ton aide
    phcorp

    pour exemple, va sur : http://afxteam.free.fr
    pour le prog "test" le mot de passe est "test", regarde et tu comprendras
    ah oui, petite précision, le code pour les smilies fonctionne

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Ok !
    Mais je parlais de la fonction afficher()

    As-tu essayé simplement de lancer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    t_content = new TextArea('c_content');
    sur le onload du <body> au lieu de le faire (apparemment) dans une balise <script> dans la page ?

    A+

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    As-tu essayé simplement de lancer
    Code :

    t_content = new TextArea('c_content');

    sur le onload du <body> au lieu de le faire (apparemment) dans une balise <script> dans la page ?
    désolé mais je ne vois pas ce que tu veux dire...
    celà dit je m'en fait une idée mais pourrais tu préciser ?
    ce code doit être chargé après la textarea non ?
    merci
    phcorp

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par phcorp Voir le message
    désolé mais je ne vois pas ce que tu veux dire...
    celà dit je m'en fait une idée mais pourrais tu préciser ?
    ce code doit être chargé après la textarea non ?
    Non.
    Il doit être éxécuté après chargement de la page (=> onload).
    De plus, il faut que tu passes tout tes include de .js dans la partie <head> de la page.

    Et enfin, lors du clic sur le tag [B] de ton éditeur
    Citation Envoyé par Debugger Firefox


    A+

  8. #8
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    re
    je ne peux pas l'initialiser lors du onload du body je suis désolé
    y a-t-il un autre moyen ?
    merci
    phcorp

    EDIT:
    problême, comment puis-je initialiser une textarea qui n'existe pas encore ? ça n'a pas de sens....

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par phcorp Voir le message
    je ne peux pas l'initialiser lors du onload du body je suis désolé
    Oh ben c'est pour toi
    Mais normallement, y a pas de raison ...

    Tu as passé les script dans le <head> ?

    A+

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    c'est fait...
    ça ne fonctionne toujours pas
    c'est louche...

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par phcorp Voir le message
    problême, comment puis-je initialiser une textarea qui n'existe pas encore ? ça n'a pas de sens....
    Ben non !
    D'où ma proposition du onload.

    Sinon, tu stockes ta valeur initial dans une variable, et tu l'affectes une fois l'objet créé ...

    A+

  12. #12
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    justement, la textarea est chargée par ajax...
    donc même dans le onload de la page, la textarea ne sera pas encore chargée non ?
    a+
    phcorp

  13. #13
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Il doit être éxécuté après chargement de la page (=> onload).
    Sinon, il faut le faire après ta fonction Ajax ...
    A+

  14. #14
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    ouais c'est pas con du tout ça merci beaucoup
    je redonnerais des nouvelles ce soir
    a+ et merci
    phcorp

  15. #15
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    non, comme tu le verras sur mon site, ça ne fonctionne pas...

    j'ai trouvé une solution
    merci de ton aide

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

Discussions similaires

  1. [AJAX] Ajax et javascript contenu
    Par zekey dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/09/2005, 20h16
  2. [AJAX] AJAX et javascript
    Par spud5351 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2005, 10h16
  3. Faire un treeview intégré dans un toolbox....
    Par Pleymo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/03/2005, 19h59
  4. Problème sur Oracle Toolbox
    Par Doctor Z dans le forum Oracle
    Réponses: 9
    Dernier message: 09/11/2004, 08h48

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