Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
567 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Résolu] Javascript Rajout de td en chaine dans un tableau

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Javascript Rajout de td en chaine dans un tableau

n°1617040
ledzep2
Posté le 29-09-2007 à 23:18:59  profilanswer
 

Salut!
 
Je m'initie au DOM...
Et forcément ça ne fonctionne pas.
Alors si l'oeil aiguisé de l'un ou l'une d'entre vous peut trouver l'erreur, ça m'aidera énormément.
Voici le code :
 

Code :
  1. function init()
  2. {
  3. var Tab = new Array("Ali","2001 Odyssée de l'espace","A la recherche du bonheur", "AI", "A l'aube du sixième jour", "Blood diamond", "Borat", "Ghost Dog", "Harry Potter 1 l'école des sorciers", "Harry Potter 2 La chambre des secrets", "Harry Potter 3 et le prisonnier d'Azkaban", "Harry Potter 4 Et la coupe de feu", "Hitcher", "Le monde de Narnia", "Salsa", "Saw2", "The Blues Brothers", "Une histoire vraie","Ils","21 grammes","Les infiltrés","Taxi Driver","O Brother","Ratatouille","Fargo" );
  4. for (i=0;i<Tab.length;i++)
  5.  {
  6.  var chekNodeB = document.createElement("checkbox" );
  7.  var chekNodeC = document.createElement("checkbox" );
  8.  var chekNodeD = document.createElement("checkbox" );
  9.  var chekNodeE = document.createElement("checkbox" );
  10.  chekNodeB.name = "cfilm" + i;
  11.  chekNodeB.value = "1";
  12.  chekNodeC.name = "mfilm" + i;
  13.  chekNodeC.value = "1";
  14.  chekNodeD.name = "lfilm" + i;
  15.  chekNodeD.value = "1";
  16.  chekNodeE.name = "ffilm" + i;
  17.  chekNodeE.value = "1";
  18.  var trNode = document.createElement("tr" );
  19.  var tdNode = document.createElement("td" );
  20.  var shtext = i+"-"+Tab[i];
  21.  var textmot = document.createTextNode(shtext);
  22.  tdNode.className = 'h2';
  23.  tdNode.appendChild(textmot);
  24.  trNode.appendChild(tdNode);
  25.  tdNode = document.createElement("td" );
  26.  tdNode.appendChild(chekNodeB);
  27.  trNode.appendChild(tdNode);
  28.  tdNode = document.createElement("td" );
  29.  tdNode.appendChild(chekNodeC);
  30.  trNode.appendChild(tdNode);
  31.  tdNode = document.createElement("td" );
  32.  tdNode.appendChild(chekNodeD);
  33.  trNode.appendChild(tdNode);
  34.  tdNode = document.createElement("td" );
  35.  tdNode.appendChild(chekNodeE);
  36.  document.getElementById("corpus" ).appendChild(trNode);
  37.  }
  38. var inputNode = document.createElement("input" );
  39. inputNode.type = "hidden";
  40. inputNode.name = "total";
  41. inputNode.value = Tab.length;
  42. }


 
Sachant que corpus est un id de tableau.
 
Merci infiniment!


Message édité par ledzep2 le 22-10-2007 à 17:32:38
mood
Publicité
Posté le 29-09-2007 à 23:18:59  profilanswer
 

n°1617052
leflos5
On est ou on est pas :)
Posté le 30-09-2007 à 02:11:35  profilanswer
 

Code :
  1. var monInput = document.createElement('input');
  2. monInput.setAttribute('type','checkbox');


 
Ca devrait aller mieux, sans garantie qu'ils y en aient pas d'autres cachées :whistle:

n°1617119
ledzep2
Posté le 30-09-2007 à 14:13:31  profilanswer
 

leflos5 a écrit :

Code :
  1. var monInput = document.createElement('input');
  2. monInput.setAttribute('type','checkbox');


 
Ca devrait aller mieux, sans garantie qu'ils y en aient pas d'autres cachées :whistle:


 
Merci en tout cas ça affiche les checkbox...c'est déjà ça! Enfin que sous firefox parce que sous ie...y a que dalle!
 
Maintenant pour la fin :
 

Code :
  1. var inputNode = document.createElement("input" );
  2. inputNode.setAttribute('type','hidden');
  3. inputNode.setAttribute('name',"total" );
  4. inputNode.setAttribute('value',Tab.length);


 
J'ai un soucis toujours.
Quand je le passe dans mon formulaire et que j'essaie de récupérer la valeur de 'total' beh y a rien.
Donc je suppose que j'ai encore une erreur de syntaxe ne serait ce que dans ce petit paragraphe.
Si on arrive à le solutionner je passe aux checkbox!
A little bit more help please! :D  
 

n°1617203
ledzep2
Posté le 30-09-2007 à 23:31:44  profilanswer
 

Je pense qu'il y a juste une petite erreur de syntaxe mais je ne vois pas laquelle...!

n°1617210
leflos5
On est ou on est pas :)
Posté le 01-10-2007 à 02:05:52  profilanswer
 

T'essaye de la récupérer comment :??:

n°1617248
ledzep2
Posté le 01-10-2007 à 09:46:12  profilanswer
 

En PHP :  
$total= $_POST['total'];
 
Tout simplement...

n°1617264
anapajari
s/travail/glanding on hfr/gs;
Posté le 01-10-2007 à 10:32:26  profilanswer
 

ledzep2 a écrit :


Code :
  1. var inputNode = document.createElement("input" );
  2. inputNode.setAttribute('type','hidden');
  3. inputNode.setAttribute('name',"total" );
  4. inputNode.setAttribute('value',Tab.length);




Tu testes avec quel IE? Parce qu'il y a bien un probléme avec des inputs + name en DOM sur IE, voir là:
http://www.easy-reader.net/archive [...] entations/

n°1617423
ledzep2
Posté le 01-10-2007 à 15:50:11  profilanswer
 

Ma version c'est la 6.0.2900.
Cette page m'a appris deux trois trucs qu'il faut que je teste. Apparemment c'est quand même des méthodes de contournement, et c'est ça qui m'embête.
Faudrait trouver un spécialiste!
En tout cas merci du coup de main.

n°1617435
anapajari
s/travail/glanding on hfr/gs;
Posté le 01-10-2007 à 16:10:07  profilanswer
 

ledzep2 a écrit :

Ma version c'est la 6.0.2900.
Cette page m'a appris deux trois trucs qu'il faut que je teste. Apparemment c'est quand même des méthodes de contournement, et c'est ça qui m'embête.
Faudrait trouver un spécialiste!
En tout cas merci du coup de main.


... je sais même pas que te repondre ... je vais retourner me spécialiser alors :(

n°1617440
flo850
moi je
Posté le 01-10-2007 à 16:17:50  profilanswer
 

ledzep2 a écrit :

Ma version c'est la 6.0.2900.
Cette page m'a appris deux trois trucs qu'il faut que je teste. Apparemment c'est quand même des méthodes de contournement, et c'est ça qui m'embête.
Faudrait trouver un spécialiste!
En tout cas merci du coup de main.


nan mais il n'y pas le choix : IE ne gere pas les standards . A moins que tu neveuilles developper un patch pour IE ?

anapajari a écrit :


... je sais même pas que te repondre ... je vais retourner me spécialiser alors :(


 
tu reviendra quand tu connaitra un peu le js et le css

Spoiler :

grand maitre [:prosterne]

mood
Publicité
Posté le 01-10-2007 à 16:17:50  profilanswer
 

n°1617662
ledzep2
Posté le 01-10-2007 à 23:21:34  profilanswer
 

Ouais mais ça ne fait pas avancer le chmmilblik...

n°1617706
anapajari
s/travail/glanding on hfr/gs;
Posté le 02-10-2007 à 09:17:07  profilanswer
 

quel chmmilblik?
Tu es tombé sur un problème implémentation DOM dans IE6 clairement identifié depuis plus de 2 ans. Si tu veux que ça marche, il faut obligatoirement utilisé des solutions de contournement [:spamafote]
 
Mais bon maintenant, un truc que je trouve pas forcement très malin, c'est la création de ton input "total" via DOM.
Clairement tu es sur de toujours en avoir besoin ( même s'il n'y a pas de lignes dans ton tableau), mets le directement dans ton html et set sa value dans ton init  
Ah, encore autre chose, il y a une methode DOM pour ajouter des lignes à un tableau, il serait peut-être bon de s'en servir.

n°1619938
ledzep2
Posté le 05-10-2007 à 19:14:07  profilanswer
 

ledzep2 a écrit :

Ouais mais ça ne fait pas avancer le chmmilblik...


La soluce pour ceux que ça intéresse :

Code :
  1. tdNode = document.createElement("td" );
  2.   var chekNodeB = document.createElement('input');
  3.   chekNodeB.setAttribute('type','checkbox');
  4.   chekNodeB.id = "cfilm" + i;
  5.   chekNodeB.value = "1";
  6.   tdNode.className = 'td2';
  7.   tdNode.appendChild(chekNodeB);
  8.   trNode.appendChild(tdNode);


 
et
 

Code :
  1. var inputNode = document.createElement("input" );
  2. inputNode.setAttribute('type','hidden');
  3. inputNode.setAttribute('name',"total" );
  4. inputNode.setAttribute('value',Tab.length);
  5. document.body.appendChild(inputNode);


 
 
Vive FireBug!
Donc ça foncttionne impeccable sous firefox et alors sous ie 6 ou 7 keudale!
Je comprends pas...
 :fou:

n°1619991
leflos5
On est ou on est pas :)
Posté le 05-10-2007 à 21:23:09  profilanswer
 

Mais on t'as dit que c'est tout au moins un bug de IE6, tu arriveras pas rajouter des éléments dans un formulaire et à les manipuler via DOM :spamafote:
 
Si tu peux plutot utiliser les fonctions propres aux tableaux c'est préférable et ça aussi ça t'a été dit!
 
C'est quoi qui marche, pas qu'est ce que tu essayes de faire :??:

n°1620044
ledzep2
Posté le 06-10-2007 à 11:23:44  profilanswer
 

Beh alors si c'est un bug de IE6 pourquoi ça marche pas sur le 7 non plus?
C'est des fonctions propres que j'utilise pour le tableau.
Ce qui ne marche pas c'est que même pas le tableau ne s'affiche.
Donc à partir de là...

n°1620045
ledzep2
Posté le 06-10-2007 à 11:29:21  profilanswer
 

Ah oui et autre chose firebug me montre la page générée, alors qu'avec ce foutu IE j epeux me brosser!!

n°1628789
ledzep2
Posté le 22-10-2007 à 17:29:04  profilanswer
 

ledzep2 a écrit :

Beh alors si c'est un bug de IE6 pourquoi ça marche pas sur le 7 non plus?
C'est des fonctions propres que j'utilise pour le tableau.
Ce qui ne marche pas c'est que même pas le tableau ne s'affiche.
Donc à partir de là...


 
Bon alors la soluce finale qui marche parfaitement et pour tout c'était trés simple!!
On la trouvait là : http://msdn2.microsoft.com/en-us/l [...] spx#create
 
Je me disais que ça valait le coup d'en faire profiter quelques-uns!
Donc j'ai bien fait de persévérer et ne pas m'entéter!
 
Il faut, pour être clair, absolument déclarer le tbody pour IE sinon il est perdu.
 
Voilà espérons que ça en aide d'autres!
Merci à tous!  :jap:
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Résolu] Javascript Rajout de td en chaine dans un tableau

 

Sujets relatifs
req sql Max(id) + GROUP/[RESOLU]Supprimer les espces blancs en fin de chaîne
débutant: trouver une chaîne dans une ligne, en remplacer une autre[AJAX] Tableau HTML, lignes et colonnes dynamiques
[RESOLU] Comment faire un echo sans retour chariot sous unix ?[Résolu] utiliser une table tempo pour lire un fichier .xls
[RESOLU] Probleme pour augmenter un DIV en fonction d'un autre[RÉSOLU]pre-loading - ActionScript 3.0
Ecrire dans un argument en Javascript ?[Résolu] IE "error not implemented"
Plus de sujets relatifs à : [Résolu] Javascript Rajout de td en chaine dans un tableau


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR