J'ai ce code, j'ai enlevé du code qui n'a rien à voir avec mon problème.Deux boucles mélangées
while ($row_pl = mysql_fetch_array($res_pl))
{
// Uurtarief
$sql_uur = "SELECT
aantal_kop,
tarief_min,
tarief_max,
tijd_min,
tijd_max,
tijd_extra
FROM uurtarief
WHERE machine = '".$row_pl['machine']."'
ORDER BY aantal_kop ASC";
if(!$res_uur = mysql_query($sql_uur))
{
include('includes/errors/database_error.php');
}
else
{
while ($row_uur = mysql_fetch_array($res_uur))
{
?>
<input type="text" name="tar_kop[]" size="8" value="<?php echo $row_uur['aantal_kop']; ?>" />
<input type="text" name="tar_tarief[]" size="8" value="<?php echo $uurtarief; ?>" />
<input type="text" name="tar_tijd_extra[]" size="8" value="<?php echo $row_uur['tijd_extra']; ?>" />
<br />
<?php
}
}
?>
<tr>
<td>
<input type="text" name="pl_aantal_kop[]" size="3" onChange="uur_tarief(this, <?php echo $i ?>)" value="" />
</td>
<td>
<input type="text" name="pl_tarief_ph[]" size="4" value="" />
</td>
</tr>
<?php
}
Avec javascript j'essaie de trouver la valeur pl_aantal_kop[]
et envoyer le paramètre correspondant à pl_tarief_ph[]
function uur_tarief(selectVeld, nr)
{
if(document.getElementsByName('pl_aantal_kop[]')[nr].value == 1)
{
document.getElementsByName('pl_tarief_ph[]')[nr].value = document.getElementsByName('tar_tarief[]')[0].value;
document.getElementsByName('pl_snijtijd_extra[]')[nr].value = document.getElementsByName('tar_tijd_extra[]')[0].value;
}
if(document.getElementsByName('pl_aantal_kop[]')[nr].value == 2)
{
document.getElementsByName('pl_tarief_ph[]')[nr].value = document.getElementsByName('tar_tarief[]')[1].value;
document.getElementsByName('pl_snijtijd_extra[]')[nr].value = document.getElementsByName('tar_tijd_extra[]')[1].value;
}
if(document.getElementsByName('pl_aantal_kop[]')[nr].value == 3)
{
document.getElementsByName('pl_tarief_ph[]')[nr].value = document.getElementsByName('tar_tarief[]')[2].value;
document.getElementsByName('pl_snijtijd_extra[]')[nr].value = document.getElementsByName('tar_tijd_extra[]')[2].value;
}
if(document.getElementsByName('pl_aantal_kop[]')[nr].value == 4)
{
document.getElementsByName('pl_tarief_ph[]')[nr].value = document.getElementsByName('tar_tarief[]')[3].value;
document.getElementsByName('pl_snijtijd_extra[]')[nr].value = document.getElementsByName('tar_tijd_extra[]')[3].value;
}
if(document.getElementsByName('pl_aantal_kop[]')[nr].value == 5)
{
document.getElementsByName('pl_tarief_ph[]')[nr].value = document.getElementsByName('tar_tarief[]')[4].value;
document.getElementsByName('pl_snijtijd_extra[]')[nr].value = document.getElementsByName('tar_tijd_extra[]')[4].value;
}
if(document.getElementsByName('pl_aantal_kop[]')[nr].value == 6)
{
document.getElementsByName('pl_tarief_ph[]')[nr].value = document.getElementsByName('tar_tarief[]')[5].value;
document.getElementsByName('pl_snijtijd_extra[]')[nr].value = document.getElementsByName('tar_tijd_extra[]')[5].value;
}
}
Le problème qui a eu lieu est que le javascript conserve le comptage à partir de la première ligne du while ($row_uur = mysql_fetch_array($res_uur))
boucle au lieu du champ qui appartient à la première boucle. Ci-dessous une capture d'écran de cette boucle.
Des suggestions?
Qu'en est-il de la valeur == 1, valeur == 2 etc. Ils font partie du code. Ce sont des nombres qui peuvent être choisis de la colonne tel que posté dans l'image. – Muiter
Votre valeur est toujours supérieure à l'indice, d'où le '[index - 1]'. – Blender