cs_f6xara
Messages postés68Date d'inscriptionsamedi 1 novembre 2003StatutMembreDernière intervention 6 février 2008
-
30 juin 2006 à 10:32
oosenseioo
Messages postés1Date d'inscriptiondimanche 31 décembre 2000StatutMembreDernière intervention20 décembre 2011
-
20 déc. 2011 à 12:21
Bonjour,
Voilà j'ai un problème sous IE seulement (sous firefox ça marche bien)
J'ai fais une centrale de réservations en Ajax. Lors de l'ajout d'une prestation, j'ajoute une ligne à mon tableau HTML en javascript et charge son contenu en Ajax en fonction des critères déjà saisis.
Le problème sous IE c'est qu'il me créé bien mon TR mais pas les TD.
voici la fonction
function addRow(){
if(testValue(LastRow)===true){
tab = document.getElementById("tab_centrale_resa");
tab.insertRow(1);
var ligne = tab.rows[1];
ligne.setAttribute("id","id_"+LastRow);
tab.appendChild (ligne);
// chargement en ajax
var myAjax = new Ajax("id_"+LastRow, "AJAX_reservation.php", "id="+LastRow });
LastRow++;
document.getElementById('nbRows').value = LastRow;
}else{
alert('Veuillez remplir complétement les informations avant de rentrer une nouvelle réservation');
}
}
Cette fonction remplace l'attribut id="" (ici "id_"+LastRow) par le contenu du fichier retourné par ajax
Ici je retourne <td>....</td><td>.....</td> puisque le TR est créé avant.
Mais celà ne marche pas. Alors faudrait-il que je créé chaque TD et que mon Ajax me retourne chaque cellule ou y a un moyen de finaliser ça pour IE sachant que sur les autres navigateurs, il n'y a pas de problèmes.
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201116 30 juin 2006 à 14:43
Y A 1 PLEMB...
Effectivement si FireFox accepte le innerHTML sur un <TR> exemple
ligne = tab.rows[1];
ligne.innerHTML = "<TD>Colonne 1</TD><TD>Colonne 2</TD>";
il y a effectivement création de 2 colonnes CA c'est Bien...
Sous IE malheureusement le innerHTML ne fonctionne pas de la même façon est les deux colonnes ne sont pas crées...
pour arriver à tes fins il te faut créer les cellules à la mano...
var NbCol = tab.rows[0].cells.length; // Ref. 1st Ligne
tab.insertRow(1);
ligne = tab.rows[1];
ligne.setAttribute("id","id_"+LastRow);
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201116 30 juin 2006 à 13:35
J'en oublie de dire que appendChild est liée par exemple à createElement() ou plus généralement en fin truc qui create...
comme aussi createTextNode entre autres...
cs_f6xara
Messages postés68Date d'inscriptionsamedi 1 novembre 2003StatutMembreDernière intervention 6 février 2008 30 juin 2006 à 13:58
Pour les alertes, j'obtiens bien
alert 1 : Nb Ligne en Entrée = 1
alert 2 : Nb Ligne en Entrée = 2
alert 1 : Nb Ligne en Entrée = 1
quand je fais une alert sur ligne, j'obtiens [objet HTMLtableRowElement]
voici plus précisément le déroulement de mon problème, ca aidera peut etre plus :)
en html je créé un tableau
titre, texte
après en javascript, je rajoute après la 1ère ligne une nouvelle ligne avec un id ce qui donne une fois le code généré
titre, texte
enfin
Je remplace le contenu de "monid" par la source d'un fichier appelé à ce moment contenant <td>blabla</td><td>blablabla</td>
Sous firefox, aucun problème, tout se déroule ainsi (j'ai l execution pas à pas)
Sous IE, il me créé bien mon <tr></tr> mais apparemment n'accepte pas que je le remplisse diretement avec lesTD dans un TR vide. Il faudrait alors je pense créé tous les td en javascript et pour chaque javascript, chargé le contenu dynamique, mais ça me pause pas mal de problème sur le découlement des actions par la suite et les vérifications en ajax (moi je dis ajax mais c est XMLHTTPREQUEST je crois :) )
Alors franchement je sèche un peu :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_f6xara
Messages postés68Date d'inscriptionsamedi 1 novembre 2003StatutMembreDernière intervention 6 février 2008 30 juin 2006 à 15:19
Bon j'ai testé ce que tu m'as dis, ça marche mais soulève pas mal de problème sur le fonctionnement général du module, donc j'ai fais d'une autre facon (beaucoup moins bien et moins belle mais ça marche), au lieu de crééer une ligne a chaque fois, je recréé tout le tableau... c'est pas super je sais :)
MissRosee
Messages postés1Date d'inscriptionvendredi 24 avril 2009StatutMembreDernière intervention24 avril 2009 24 avril 2009 à 13:35
Bonjour
je connais pas grand chose sur ajax et j'aimerai faire le meme truc alors si possible vous pouvez me filer le code(si vous l'avez encore) ou plus d'explication (les variables LastRow,nbRows,id_.. je sais pas ou je les déclare)
Merci d'avance