Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/05/2008, 20h00   #1
Nouveau Membre du Club
 
Homme
Inscription : janvier 2003
Messages : 105
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2003
Messages : 105
Points : 27
Points : 27
Par défaut 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 :
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;
    }
  };
}
 
 
//-----------------------------------------------------------------
__________________
http://www.medianeo.net
aztec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 09h27   #2
Modérateur
 
Avatar de DoubleU
 
Inscription : janvier 2006
Messages : 1 107
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 107
Points : 1 118
Points : 1 118
Essaie de créer tes options de cette facon:

Code :
1
2
 var option = new Option("valeur","valeur",false,true);
 select.options[select.options.length] = option;
DoubleU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 19h36   #3
Nouveau Membre du Club
 
Homme
Inscription : janvier 2003
Messages : 105
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2003
Messages : 105
Points : 27
Points : 27
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
__________________
http://www.medianeo.net
aztec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 20h11   #4
Nouveau Membre du Club
 
Homme
Inscription : janvier 2003
Messages : 105
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2003
Messages : 105
Points : 27
Points : 27
Merci beaucoup, j'ai testé et ça fonctionne bien aussi sur IE
__________________
http://www.medianeo.net
aztec est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h26.


 
 
 
 
Partenaires

Hébergement Web