Exporter un tableau html vers javascript (attention : les champs contiennent des
barbe91
Messages postés20Date d'inscriptionlundi 20 avril 2009StatutMembreDernière intervention24 novembre 2011
-
21 avril 2009 à 11:05
cs_mimigirl66
Messages postés1Date d'inscriptiondimanche 20 avril 2008StatutMembreDernière intervention12 juillet 2009
-
12 juil. 2009 à 23:24
Bonjour à toute la communauté,
c'est mon premier message sur ce forum ça se fête (comment cela non, c'est bientôt la saison des barbeucs, on s'organise ça quand?).
Bon bon blague à part, j'ai un problème qui me taraude sérieusement depuis hier.
Voilà le scénario, j'ai un tableau dynamique en html , on peut ajouter des lignes, supprimer des lignes, modifier le contenu.
Toutes les cellules contiennent un champ d'édition.
Je souhaite effectuer un tri de ce tableau en reconnaissant automatiquement le type des données, ce que je sais faire algorithmiquement.
Question technique, je suis perturbé sur un point en ce moment : je n'arrive pas du tout à récupérer les valeurs contenues dans le champ d'édition, ce que j'arrive à faire dans une lineEdit simple non contenue dans une cellule ne marche pas quand elle est incorporée dans un tableau.
Pour donner une idée voici le script que j'utilise pour récupérer une donnée d'un champ :
document.connexion.mdp.value
Cela je l'utilise pour extraire des données provenant d'un formulaire par exemple...
Mais quand la ligne d'édition est dans la cellule d'un tableau, c'est une autre paire de manche!
Voilà déjà mon script pour récupérer l'objet tableau:
var tableau = document.getElementById('tableau');
Puis après je prends le nombre de lignes et de colonnes (nombre de colonnes est fixe lui) :
var nbLignes = tableau.rows.length;
var nbColonnes = tableau.rows[0].cells.length;
Bon après on construit un Array puis les for interviennent pour la recopie, mais voilà je n'arrive pas à récupérer les valeurs donc bon....
Quelqu'un aurait-il une idée par pitié?
Je vous remercie de votre attention.
A voir également:
Exporter un tableau html vers javascript (attention : les champs contiennent des
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 21 avril 2009 à 11:20
Bonjour,
>>je n'arrive pas du tout à récupérer les valeurs contenues dans le champ d'édition
dans la cellule ? dans le champ contenu dans la cellule ? ... ou quoi ?
la cellule : tableau.rows[ligne].cells[colonne].innerHTML
le champ ? peut-être la tableau n'a aucune importance, ils ont
des name : document.formulaire.champ[index] ou
des id document.getElementById("id")
sinon : tableau.rows[ligne].cells[colonne].firstChild.nodeValue, ou pas loin
barbe91
Messages postés20Date d'inscriptionlundi 20 avril 2009StatutMembreDernière intervention24 novembre 2011 21 avril 2009 à 11:39
Oui je n'ai pas été très clair là-dessus...
C'est bien la valeur contenue dans le champ d'édition d'une cellule (à termes toutes, mais je test sur une d'abord) que je veux récupérer.
Chaque cellule à le même nom : champ-> <td></td>
Je ne vois pas trop ce que je pourrais mettre à la place d'index de document.formulaire.champ[index].
Typiquement quand j'utilise cela c'est pour récupérer une valeur d'une liste déroulante ou autre dans le même style, mais dans le cas d'un tableau à deux dimensions, je vois pas du tout.
Avec tes réponses j'ai eu l'idée suivante, récupérer le contenu d'une cellule (à savoir le champ d'édition), puis à partir de là récupérer la valeur du champ d'édition.
Script utilisé :
var cellule = tableau.rows[1].cells[0].innerHTML;
alert(cellule.value);
Malheureusement c'était trop beau pour être vrai, la valeur renvoyé par la msgBox est : undefined.
Mais c'est un bon début dans la logique d'extraction? Faut essayer totalement autrement?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 21 avril 2009 à 11:55
var cellule = tableau.rows[1].cells[0].innerHTML;
alert(cellule.value);
normal. cellule c'est une chaine de caractère qui contient
donc pas de .value !
tu pourrais y faire firstChild.nodeVlaue ou getElementByTagName ou ...
le plus simple probablement :
inclure le tout dans un formulaire, si ce n'est déjà fait et
document.name_du_formulaire.champ[index] index, c'est même probablement le n° de ligne
ah ben... c'est d'ailleurs ce que tu dis !
>>Je ne vois pas trop ce que je pourrais mettre à la place d'index de document.formulaire.champ[index]
pourquoi vouloir utiliser autre chose ?
barbe91
Messages postés20Date d'inscriptionlundi 20 avril 2009StatutMembreDernière intervention24 novembre 2011 21 avril 2009 à 12:33
Oué sympa de répondre aussi vite, j'ai essayé de manière classique avec document...... Et en effet c'est bien le numéro de ligne en index...
Maintenant la msgBox n eme renvoit rien alors que j'entre une valeur dans le champ correspondant à la ligne... Mais pour préciser la cellule je vois pas trop, j'ai essayé avec firstChildNode.value, mais ça ne m'a pas l'air très adapté, pour les textEdit, enfin j'ait peut-être oublié des propriétés... Bref, ayant donc un tableau deux dimensions faudrait que je précise donc les coordonnées complètes mais là je sèche, j'ai essayé des trucs qui ne me renvoient pas d'erreur js, mais qui ne renvoient rien non plus ou alors null quand y a quelque chose d'écrit.
Pour l'instant j'ai essayé cela dans l'esprit document.... : alert(document.listing.champ[3].value);
Bon je vais manger là j'ai trop faim, fais en autant hein ne te prend pas la tête des heures sur mon problème si cela t'embête, mais c'est très sympa de m'aider je te remercie.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 21 avril 2009 à 12:39
>>j'ai essayé de manière classique avec document...... Et en effet c'est bien le numéro de ligne en index...
>>Maintenant la msgBox n eme renvoit rien alors que j'entre une valeur dans le champ correspondant à la ligne
msgBox ? inconnu ça
mais pas, de raison... ça doit fonctionner !
<form name="frm">
----
,
----
,
----
,
</form>
<script>
for ( var n=0;n<document.frm.champ.length;n++)
{ alert(document.frm.champ[n].value); }
</script>
barbe91
Messages postés20Date d'inscriptionlundi 20 avril 2009StatutMembreDernière intervention24 novembre 2011 21 avril 2009 à 13:45
AAAh oui je comprends, je me trompais de numéro de lignes dans index, j'en mettais une qui n'existait tout bonnement pas encore, mais quel C** je te jure...
Bref, c'est très sympa, tu m'as bien aiguillé, décidément il a l'air vraiment bien ce forum.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 21 avril 2009 à 14:11
>>je me trompais de numéro de lignes dans index
"c'était ce qu'il pouvait sembler"
>>mais quel C** je te jure
bah... j'ai fais bien pire
le nez dans le guidon on ne vois pas toujours
poser la question dans un forum fait souvent avancer
>>il a l'air vraiment bien ce forum
sur tous les forums de CodesSources il y a de nombreux
intervenants très compétents ( je ne parle nullement
de moi, je ne suis qu'un tout petit ), disponibles,
aimables ( si on l'est ! )
c'est très agréable ( on croise parfois des gens
et des réponses qui me laissent rêveur, mais
c'est très rare et limité à quelques énergumènes )