Récupérer la valeur d'une case dans un tableau

Résolu/Fermé
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017 - Modifié par abirgl le 26/01/2017 à 11:26
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017 - 26 janv. 2017 à 13:51
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

Utilisateur anonyme
26 janv. 2017 à 12:32
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.
0
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017
26 janv. 2017 à 12:39
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 ^^
0
Utilisateur anonyme > abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017
26 janv. 2017 à 13:06
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.
0
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017
26 janv. 2017 à 13:41
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
0
Utilisateur anonyme
26 janv. 2017 à 13:49
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
0
abirgl Messages postés 127 Date d'inscription lundi 31 octobre 2016 Statut Membre Dernière intervention 20 juin 2017
26 janv. 2017 à 13:51
Merci infiniment :D , c exactement ça ^^
0