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 :

[AJAX] modification "inline" de données avec un <select>


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 64
    Points
    64
    Par défaut [AJAX] modification "inline" de données avec un <select>
    bonjour,
    j'utilise le tutoriel de modification inline de données que je trouve très bien fait

    j'ai essayé d'améliorer en prévoyant le cas d'un champ à modifier à l'aide d'un <select> et j'ai donc rajouté une méthode pour le select pour tester

    sur Firefox, la solution adaptée pour un select fonctionne très bien ; par contre, sur IE, lorsque je selectionne dans le select, la sortie se fait par la suppression du select mais il ne réaffiche pas la valeur ensuite !!!

    de quoi cela peut-il bien venir ???


    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
     
    //-----------------------------------------------------------------
     
      //Fonction de modification inline pour un select
    function inlineModSelect(id, obj, nomValeur, type, table, login)
    {
      if(editionEnCours)
      {
        return false;
      }
      else
      {
        editionEnCours = true;
        sauve = false;
      }
     
      //Objet servant à l'édition de la valeur dans la page
      var select = null;
     
      //On crée un composant différent selon le type de la valeur à modifier
      switch(type)
      {
          case  "select":
          select = document.createElement("select");
          optionb = document.createElement("option");
          textb = document.createTextNode("Choisissez :");
          optionb.appendChild(textb);
          select.appendChild(optionb);
          table_select=get_select("media_movie_genre");
          for (var i=0; i<table_select.length; i++) {
          option+"i"= document.createElement("option");
          text+"i"=document.createTextNode(table_select[i]);
          option+"i".appendChild(text+"i");
          select.appendChild(option+"i");}
          break;
      }
     
      //Assignation de la valeur
      if (obj.innerText)
        select.value = obj.innerText;
      else
        select.value = obj.textContent;
     
      select.value = trim(select.value);
     
      //On lui donne une taille un peu plus large que le texte à modifier
      select.style.width  = getTextWidth(select.value) + 30 + "px";
     
      //Remplacement du texte par notre objet input
      if (login)
      {
      obj.replaceChild(select, obj.firstChild);
      }
      else {alert("Pour effectuer cette opération, vous devez vous connecter en tant que membre.");}
     
      //On donne le focus à l'input et on sélectionne le texte qu'il contient
      select.focus();
      //input.select();
     
      //Assignation des deux événements qui déclencheront la sauvegarde de la valeur
     
      //Sortie de l'input
      select.onblur = function sortir()
      {
        sauverMod(id, obj, nomValeur, select.value, type, table, login);
        delete select;
      };
     
      //Appui sur la touche Entrée
      select.onkeydown = function keyDown(event)
      {
                    if (!event&&window.event)
                    {
                        event = window.event;
                    }
        if(getKeyCode(event) == 13)
                      {
          sauverMod(id, obj, nomValeur, select.value, type, table, login);
          delete select;
        }
      };
    }
     
     
    //-----------------------------------------------------------------

  2. #2
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Essaie de créer tes options de cette facon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     var option = new Option("valeur","valeur",false,true);
     select.options[select.options.length] = option;

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 64
    Points
    64
    Par défaut
    merci pour la reponse

    la fonction Option est une fonction prédéfinie ou à programmer ?

    ce qui est bizarre c'est que ça fonctionne bien sous Firefox !

    merci

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 64
    Points
    64
    Par défaut
    Merci beaucoup, j'ai testé et ça fonctionne bien aussi sur IE

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 12/07/2012, 11h58
  2. Réponses: 13
    Dernier message: 30/05/2011, 17h47
  3. [AJAX] Modification "inline" de données avec AJAX
    Par isa150183 dans le forum AJAX
    Réponses: 1
    Dernier message: 04/12/2009, 00h21
  4. Réponses: 3
    Dernier message: 21/11/2006, 14h28
  5. [AJAX] Modification "inline" de données avec AJAX
    Par Bestiol dans le forum Contribuez
    Réponses: 0
    Dernier message: 12/08/2006, 14h01

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