Problème avec appendChild sous IE

Problème avec appendChild sous IE - HTML/CSS - Programmation

Marsh Posté le 03-04-2009 à 20:12:46    

Bonjour à tous,
 
Je développe actuellement une application web pour un lycée. Dans un formulaire, je demande à l'utilisateur l'établissement d'origine d'un élève. Pour cela, j'ai une liste d'établissement dans une base mysql que j'affiche dans un champ select avec une simple requête. Cependant, je voudrais que si l'établissement d'un élève n'apparaît pas, l'utilisateur puisse l'ajouter afin que dans la liste le nouvel établissement apparaisse sans rechargement de la page. Pour cela, j'ai fais un bouton permettant l'ajout d'un nouvel établissement. Ce bouton ouvre une popup avec la fonction open. Dans la popup, j'ai un champ input pour saisir le nom du nouvel établissement et un bouton submit.
Au submit de la page j'appelle le code javascript suivant permettant la mise à jour de mon champ select:

Code :
  1. function maj(){
  2.  var select = window.opener.document.getElementById('selectEtablissement');
  3.  var option = document.createElement('option');
  4.  var input = window.document.getElementById('etablissement').value
  5.  var montexte = document.createTextNode(input);
  6.  option.appendChild(montexte);
  7.  select.appendChild(option);
  8. }


Pour Firefox tout marche très bien, cependant le lycée utilise Internet Explorer et mon code ne fonctionne pas sous IE.
Je pense que c'est la dernière ligne qui ne fonctionne pas (select.appendChild(option)).
Quelle correction puis-je apporter pour que cela fonctionne sous IE ?
 
Merci d'avance

Reply

Marsh Posté le 03-04-2009 à 20:12:46   

Reply

Marsh Posté le 03-04-2009 à 22:11:24    

Je souçonnerais plutôt ces lignes :

Code :
  1. var option = document.createElement('option');
  2. var montexte = document.createTextNode(input);


J'essaierais à la place :

Code :
  1. var option = window.opener.document.createElement('option');
  2. var montexte = window.opener.document.createTextNode(input);


Reply

Marsh Posté le 04-04-2009 à 11:36:34    

Merci beaucoup ça fonctionne.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed