begin process at 2012 02 13 06:51:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

Framework

 > 

Ajax

 > 

Ajout de ligne dans un tableau en ajax


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ajout de ligne dans un tableau en ajax

vendredi 30 juin 2006 à 10:32:20 | Ajout de ligne dans un tableau en ajax

f6xara

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.


vendredi 30 juin 2006 à 13:25:26 | Re : Ajout de ligne dans un tableau en ajax

PetoleTeam

Membre Club


B onjour...

Je ne connais pas AJAX, sauf celui qui lave plus blanc...etc... mais mets des alert pour voir ce qui ce passe après appendchild...

var tab  = document.getElementById("tab_centrale_resa");
var ligne;

alert("Nb Ligne en Entrée = " +tab.rows.length);

tab.insertRow(1);
ligne = tab.rows[1];
ligne.setAttribute("id","id_"+LastRow);
alert("Nb Ligne Avant = " +tab.rows.length);
tab.appendChild( ligne);
alert("
Nb Ligne Apres = " +tab.rows.length);

je suis navré mais elle n'y est plus...

;0)


vendredi 30 juin 2006 à 13:35:52 | Re : Ajout de ligne dans un tableau en ajax

PetoleTeam

Membre Club
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...
vendredi 30 juin 2006 à 13:58:34 | Re : Ajout de ligne dans un tableau en ajax

f6xara

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
<table><tr><td>titre</td><td>texte</td></tr></table>

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é
<table><tr><td>titre</td><td>texte</td></tr><tr id="monid"></tr></table>

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 :)



vendredi 30 juin 2006 à 14:43:50 | Re : Ajout de ligne dans un tableau en ajax

PetoleTeam

Membre Club
Réponse acceptée !
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);


for( var i=0; i< NbCol; i++){
  ligne.insertCell(i);
  ligne.cells[i].innerHTML = "Ligne " + i;
// par exemple
}

Donc il te faut modifier la méthode d'écriture des cellules la méthode en bleu étant compatible FireFox IE...

;0)


 
vendredi 30 juin 2006 à 15:19:27 | Re : Ajout de ligne dans un tableau en ajax

f6xara


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 :)

Merci encore

vendredi 30 juin 2006 à 15:59:38 | Re : Ajout de ligne dans un tableau en ajax

PetoleTeam

Membre Club
??? pourquoi à partir de la ligne tu ne récupéres pas les champs


var szTmp = Text;  // Ta ligne récupérée... <td>blabla</td><td>blablabla</td>
var NbCar  = szTmp.length;
var Deb  = 0;         // position de <TD>au début
var Fin;      
         // position de </TD>en fin
var i =0;
while( Deb > -1){
  Fin  = szTmp.indexOf( '</td>');
  ligne.cells[i].innerHTML = szTmp.substring( Deb+4, Fin); // Résultat dans cellules
  szTmp = szTmp.substr( Fin +5, NbCar);                       // Tronque chaine de référence
  Deb = szTmp.indexOf( '<td>');
}

Ca c'est plus FUN...

;0)
vendredi 24 avril 2009 à 13:35:52 | Re : Ajout de ligne dans un tableau en ajax

MissRosee

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
mardi 20 décembre 2011 à 12:21:39 | Re : Ajout de ligne dans un tableau en ajax

oosenseioo


je viens de tomber sur ton code c'est peu etre trop tard mais ça sert à quoi ton truc en rouge là? lol

voici la fonction
function addRow(){
if(testValue(LastRow)===true){


Cette discussion est classée dans : ligne, id, ajax, tab, lastrow


Répondre à ce message

Sujets en rapport avec ce message

iteration d'un id de balise SPAN dans une fonction javascript [ par misterchabine ] bonsoir,J'ai un formulaire ds lequel j'ai des 10 balises span avec id tab+un numero (ex : tab1 tab2 tab3 ...tab10)Mes 10 span ont leur valeur display Masquer / Afficher ligne de tableau [ par steb359842 ] Bonjour, J'ai un projet important à rendre ce soir et pas moyen d'arriver à faire ce que je veux,je m'explique :j'ai un tableau ton certaines lignes d Fonction AJAX sous Firefox [ par whostheboss2 ] Bonjour à tous, je voudrais avoir votre aide concernant un problème que j'ai rencontré lors d'un appel de fonction dans un fichier AJAX à l'aide d'un incompréhension fonction substring ... [ par chamallow ] Bonjour,je crois que je deviens folle, je n'arrive même plus à faire un substring !!En fait j'ai des boutons image dont les identifiants sont du type Probleme javascript firefox [ par mismouss2306 ] Bonjour,J'ai un problème avec ce script qui fonctione sous IE7 mais pas sous FIREFOX ://** Ultimate Tabbed Product Menu **   var enabletabpersiste Affichage info en fonction de la sélection ligne tableau [ par bruno3591 ] Bonjour,J'ai un tableau ou je peux sélectionner ligne par ligne des enregistrements via ceci : <tr  onclick="location.href='fiche.php'" style="cursor: cree une liste deroulante liee entre elle [ par simonano ] Bonjour , j'aimerai crée deux  liste déroulante liée entre elles sur 2 table (module , matière) lors de clique sous la premiere liste , je veux avoir Json et ajax, clé variable [ par kenshiroseifu ] Bonjour, Je récupère un json que je créé en java.Le fichier json : {"documentOriginalJson": object{<span Problème de récupération de valeures AJAX [ par fogof ] Bonjour, J'ai un petit soucis, j'ai une fonction pour effectuer une requète en AJAX : [code=js]function recup_libelle_rubriques(id_rubrique_recherch Controles sur des <select> [ par harmonyk ] Bonjour ! Je suis confronté à un problème avec une fonction Javascript, je ne sais pas comment la tourner... J'ai un formulaire, avec 36 selects (oui


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales