Bonjour à tous,
Je suis en train de faire un script qui lors d'un événement de l'utilisateur créé dynamiquement deux select.
Pour crééer les options des select j'ai un petit bou d'ajax qui me premet d'aller chercher des infos en PHP.
Cela marche nikel sous IE mais sous Firefox il faut que je rajoute un "alert('nimporte quoi')" apres l'Ajax si je veux que les options des select soient remplies.
En gros mes variables "strLangues" et "strLanguesNiveaux" sont vides si je met pas de "alert()" juste avant.
J'aimerai bien avoir ce code fonctionnel sans "alert()" ^^.
Quelqu'un aurait il une idée ?
Pour la piste que je suis en train de suivre:
- C'est peut être la gestion des espaces et retour à la ligne dans l'arbre DOM sous Firefox.
function AjoutLangue(){
var table = document.getElementById('Langues');
var tbody = document.createElement('tbody');
var trLangue = document.createElement('tr');
var tdLangue = document.createElement('td');
var tdNiveau = document.createElement('td');
var selectLangue = document.createElement('select');
var selectNiveau = document.createElement('select');
var check = document.createElement('input');
var strLangues = "";
var strLanguesNiveaux = "";
// checkbox pour supprimer
check.type = 'checkbox';
check.onclick = function(){
letd = this.parentNode;
letr = letd.parentNode;
letable = letr.parentNode;
letable.removeChild(letr);
}
var reg=new RegExp('[|]+');
/*** Creation du select des langues ***/
// recherche des infos pour constituer les select de langue
var callbackLangue = function(result) {
strLangues = result;
}
var url = '/modules/emploi/candidat/library/sel_langues.php';
HTML_AJAX.grab(url, callbackLangue);
/** Il faut decommenter ce alert pour que ca marche sous Firefox
alert('aloha'); */
// Creation des options du select
var tabLangues=strLangues.split(reg);
selectLangue.name = 'Langues[]';
for (var i=0; i<tabLangues.length; i++) {
var optionLangue = document.createElement('option');
optionLangue.value = tabLangues[i];
optionLangue.text = tabLangues[i];
selectLangue.appendChild(optionLangue);
/*selectLangue.options[i].value = tabLangues[i];
selectLangue.options[i].text = tabLangues[i];*/
}
/*** creation du select des niveaux ***/
// recherche des infos pour constituer les select de niveau
var callbackNiv = function(result) {
strLanguesNiveaux = result;
}
var url = '/modules/emploi/candidat/library/sel_niveaux.php';
HTML_AJAX.grab(url, callbackNiv);
/** Il faut decommenter ce alert pour que ca marche sous Firefox
alert('aloha'); */
// Creation des options du select
var tabLanguesNiveaux=strLanguesNiveaux.split(reg);
selectNiveau.name = 'Niveaux[]';
for (var i=0; i<tabLanguesNiveaux.length; i++) {
var optionLangueNiveau = document.createElement('option');
optionLangueNiveau.value = tabLanguesNiveaux[i];
optionLangueNiveau.innerHTML = tabLanguesNiveaux[i];
selectNiveau.appendChild(optionLangueNiveau);
}
//Affichage
tdLangue.appendChild(selectLangue);
trLangue.appendChild(tdLangue);
tdNiveau.appendChild(selectNiveau);
tdNiveau.appendChild(check);
tdNiveau.appendChild(document.createTextNode("Enlever"));
trLangue.appendChild(tdNiveau);
tbody.appendChild(trLangue);
table.appendChild(tbody);
}
Configuration: Windows XP
Firefox 2.0.0.6