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 :

R�cup�ration d'�v�nement d'une liste


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    76
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 76
    Par d�faut R�cup�ration d'�v�nement d'une liste
    Bonjour,

    A partir du tutoriel "Modification "inline" de donn�es avec AJAX", j'ai ajout� une liste � choix multiple. Elle se charge sans probl�me � partir de la BDD, la valeur qui �tait dans le texte avant le double-clic est bien s�lectionn�e.

    Le probl�me est que aucun �v�nement n'est intercept� sur ma liste.

    Dans le tableau de base, toutes les colonnes ne sont pas modifiables, et elle n'ont pas toutes le m�me type de formulaire. Hors les cellules "textes" fonctionnent correctement. Je n'est pas test� l'enregistrement dans la BDD, mais cela n'a pas d'importance pour l'instant.

    Je ne trouve rien sur les "champs listes", il doit bien y avoir d�j� eu des essais � ce propos, d'avance merci !

    microJaP

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    76
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 76
    Par d�faut
    Re;

    Voici le code de la fonction "inlineMod" � part :
    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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    //Fonction de modification inline de l'élément double-cliqué
    function inlineMod(ID_Coder, id, obj, nomValeur, type)
    {
        if(editionEnCours)
        {
            return false;
        }
        else
        {
            editionEnCours = true;
            sauve = false;
        }
     
        //Objet servant à l'édition de la valeur dans la page
        var input = null;
     
        //On crée un composant différent selon le type de la valeur à modifier
        switch(type)
        {
            //Valeur de type texte ou nombre
            case "texte":
            case "nombre":
                input = document.createElement("input");
                break;
     
            //Valeur de type texte multilignes
            case  "texte-multi":
                input = document.createElement("textarea");
                break;
     
            //Valeur de type Liste MultiSelect
            case  "MultiSelect":
                input = document.createElement("select");
                break;
        }
     
        //Assignation de la valeur dans une valeur temporaire
        if (obj.innerText)
            ValObj = obj.innerText;
        else {
            ValObj = obj.textContent;
        }
     
        if (type == "MultiSelect") {  //  Chargement et affectation de la liste
            getSelectListe(ID_Coder, input, ValObj);
        } else {  // Script original pour les autres champs
            input.value = ValObj;
            input.value = trim(input.value);
     
            //On lui donne une taille un peu plus large que le texte à modifier
            input.style.width  = getTextWidth(input.value) + 30 + "px";
        }
     
     
        //Remplacement du texte par notre objet input
        obj.replaceChild(input, obj.firstChild);
     
        //On donne le focus à l'input et on sélectionne le texte qu'il contient
        input.focus();
        input.select();
     
        //Assignation des deux événements qui déclencheront la sauvegarde de la valeur
     
        //Sortie de l'input
        input.onblur = function sortir()
        {
            sauverMod(id, obj, nomValeur, input.value, type);
            delete input;
        };
     
        //Appui sur la touche Entrée
        input.onkeydown = function keyDown(event)
        {
            if (!event&&window.event)
            {
                event = window.event;
            }
            if(getKeyCode(event) == 13)
            {
                sauverMod(id, obj, nomValeur, input.value, type);
                delete input;
            }
        };
     
        // Ajout d'un évenement pour voir !!!!
        //Changement de valeur dans la liste
        input.onchange = function ListeChange(event)
        {
            if (!event&&window.event)
            {
                event = window.event;
            }
            if(getKeyCode(event) == 13)
            {
                sauverMod(id, obj, nomValeur, input.value, type);
                delete input;
            }
        };
    }
    La variable "ID_Coder" me sert pour r�cup�rer les donn�es dans la BDD.

    microJaP

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    76
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 76
    Par d�faut
    Bonjour,

    J'ai trouv� le probl�me de syntaxe du javascript :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
        //On donne le focus � l'input et on s�lectionne le texte qu'il contient
        input.focus();
        input.select();
    La s�lection du texte ne peut pas se faire dans une liste.

    J'ai trouv� cette erreur gr�ce � une nouvelle doc que je viens de recevoir justement sur AJAX : il s'agit du livre "Web 2.0 avec Ajax et PHP", il propose d'utiliser conjointement "FireFox" et le plug-in " FireBug" pour le d�veloppement. Hors c'est FireFox qui m'a trouv� ou �tait le bug !

    Je ne connaissais pas la puissance de FireBug, � utiliser sans mod�ration je pense !

    microJaP

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 4
    Dernier message: 09/05/2007, 23h39
  2. R�ponses: 7
    Dernier message: 05/05/2006, 08h03
  3. [SQL] Probl�me de r�cup�ration des valeurs d'une liste multiple en php
    Par BOLARD dans le forum PHP & Base de donn�es
    R�ponses: 1
    Dernier message: 01/05/2006, 00h29
  4. r�cup�ration des donn�es via une liste d�roulante
    Par rahan_dave dans le forum Access
    R�ponses: 1
    Dernier message: 13/10/2005, 12h27
  5. [D�butant][jsp] �v�nement sur une liste
    Par phoebe dans le forum Servlets/JSP
    R�ponses: 5
    Dernier message: 14/05/2004, 10h53

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