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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    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 averti
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    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

    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
    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 averti
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    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

    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
    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 averti
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    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

+ 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