Récupérer la valeur d'une case dans un tableau [Résolu/Fermé]

Signaler
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017
-
abirgl
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017
-
Bonjour,
J'ai un tableau html et je veux comparer la deuxième et la quatrième colonne de chaque ligne du tableau, pour ce faire j'ai utilisé une fonction javascript, mon problème c'est que j'arrive pas à récupérer les valeurs des colonnes,
voici mon code (mon tableau a comme id dataTables-example)

function ValidationForm()
{
var nbLignes=document.getElementById("dataTables-example").getElementsByTagName("tr").length;
var nbColonnes=document.getElementById("dataTables-example").getElementsByTagName("td").length;
var i = 1;
while (i < nbLignes)
{
var qteOt=document.getElementById("dataTables-example").getElementsByTagName('tr')[i].getElementsByTagName('td')[1].innerHTML;
var qteRes=document.getElementById("dataTables-example").getElementsByTagName('tr')[i].getElementsByTagName('td')[3].innerHTML;
if(qteRes < qteOt)
{
i++;
}

}
if(i==nbLignes)
{
return 1;
}
else
{
return -1;
}
}

J'ai essayé .value et .textContext au lieu de innerHTML mais ça me retourne pas la valeur de la colonne :( comment faire pour obtenir la valeur de la colonne 1 et 3 svp ?
Merci d'avance

1 réponse

Messages postés
1709
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
Dernière intervention
24 septembre 2018
513
Il nous faut le code HTML du tableau pour comprendre ce que tu veux, et voir quel type de valeur il y a dedans.

Ensuite je comprend pas pourquoi tu as mis un while et non un for, car tu incrémente si la valeur de la colonne 4 est plus petite que la 2, mais si c'est pas me cas ta boucle est infini.
abirgl
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017

Bonjour ZeNairolf,
Voici le code HTML du tableau

<div class="table-responsive">
<?php
$UpdateLink=$numero_ordre_de_travail.$numero_rattachement;
?>
<table class="table table-striped table-bordered table-hover" id="dataTables-example">
<thead>
<tr>
<th>Désignation</th>
<th>QTE OT</th>
<th>QTE Réalisee</th>
<th>QTE Restante</th>
<th>QTE </th>
<th> Image </th>
</tr>
</thead>
<tbody>
<tr class="odd gradeX">
<?php
$sqlmatpre="select CArticle, LibArticle,QuantiteOT,QuantiteOTRes,QuantitePreparee,Image_Article from GP_OrdredeTravailDetail
where NOrdredeTravail='$numero_ordre_de_travail'";
$stmtmatpre = sqlsrv_query( $conn, $sqlmatpre );
while( $rowmat = sqlsrv_fetch_array( $stmtmatpre, SQLSRV_FETCH_NUMERIC) )
{
$indexArticle=$rowmat[0]." | ".$rowmat[1].$numero_ordre_de_travail.$numero_rattachement;
?>
<td width="20%"><input type="text" style="border:0px" name="libArticle[]" value="<?php echo $rowmat[0]." | ".$rowmat[1]; ?>" disabled>
<input type="hidden" style="border:0px" name="libArticle[]" value="<?php echo $rowmat[0]." | ".$rowmat[1]; ?>" >
</td>
<td width="10%">
<input type="text" size="3" style="border:0px" name="quantiteOT[]" value="<?php echo $rowmat[2]; ?>" disabled>
<input type="hidden" size="3" style="border:0px" name="quantiteOT[]" value="<?php echo $rowmat[2]; ?>">
</td>
<td width="10%">
<input type="text" size="3" style="border:0px" align="center" name="quantiteRealisee[]" value="<?php echo $rowmat[4];?>" disabled>
<input type="hidden" size="3" style="border:0px" align="center" name="quantiteRealisee[]" value="<?php echo $rowmat[4];?>">
</td>
<td width="10%">
<input type="text" size="3" style="border:0px" name="quantiteRestante[]" value="<?php echo $rowmat[3]; ?>" disabled>
<input type="hidden" size="3" style="border:0px" name="quantiteRestante[]" value="<?php echo $rowmat[3]; ?>" >
</td>
<!--<td width="10%">
<input type="number" size="1" style="border:0px" name="quantite[]" value="<?php echo $rowmat[3]; ?>" >
</td>-->
<td width="1px" ><input type="number" step="any" size="0" style="border:0px" align="center" name="quantite[]" value="0" min="0" max="<?php echo $rowmat[3]; ?>"> </td>
<td width="40%">
<img width=100%; height=50%; src=""quot;image.php?idim=<?php echo $numero_ordre_de_travail.$rowmat[0] ?> " onClick='window.open(this.src)' />
</td>
<!-- <td> <img src=""/images_articles/toto.pdf onClick='window.open(this.src)'> </td> -->
</tr>
</tbody>
<?php
}
?>
</table>



J'explique pourquoi j'ai utilisé un while et non pas une boucle for: je veux tester si la vateur qteRes est inférieure à qteOT dans toutes les lignes du tableau, si c'est le cas mon compteur s'incrémente sinon rien ne se passe et je sors du while avec l'indice du compteur puis je teste si le compteur est arrivée à la fin du tableau cela signifie que dans toutes les lignes , la valeur qteRes est inférieure à qteOt, alors que lorsque j'utilise une boucle for, je vais parcourir toutes les lignes et je sais pas comment obtenir le résultat du test, j'espère que j'ai pu exliqué , sinon ça me pose pas de problème la boucle while , je voulais juste obtenir la valeur de la colonne quantité OT et la valeur de la colonne Qte Restante, j'espère que tu pourras m'aider et merci ^^
ZeNairolf
Messages postés
1709
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
Dernière intervention
24 septembre 2018
513 > abirgl
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017

Alors déjà pourquoi ne pas le faire en PHP ? Vu que tu as déjà les données dans des variables, ensuite il faut selection l'input et non juste le td pour récupérer la valeur.
abirgl
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017

Oui c vrai , je dois sélectionner l'input et non pas le <td> , comment je peux obtenir la valeur de l'input ? j'ai essayé ça :

var qteRes=document.getElementsById("quantiteRestante")[i].value;
alert(qteRes);

mais ça n'affiche rien
ZeNairolf
Messages postés
1709
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
Dernière intervention
24 septembre 2018
513
Là tu sélectionnes un Id qui n'existe pas et ensuite un Id est unique

Pour avoir la valeur il faut faire:

document.getElementById("dataTables-example").getElementsByTagName('tr')[i].getElementsByTagName('td')[3].getElementsByTagName('input')[0].value
abirgl
Messages postés
127
Date d'inscription
lundi 31 octobre 2016
Statut
Membre
Dernière intervention
20 juin 2017

Merci infiniment :D , c exactement ça ^^