Php javascript

Fermé
borhen - 10 nov. 2008 à 11:11
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 10 nov. 2008 à 12:14
Bonjour, j'ai une formulaie qui contient des zones textes qui affichent des valeurs a partir d'une BD MySql, devant chaque zone texe j'ai des checkbox. le programme connsiste à : le programme doit faire un calcule des zone texte dont la chexbox qui se trouve devant est coché est l'affiche dans une autre zone texte. le calcule doit être fait quand je coche la zone texte c. a. d. la valeur doit etre calculé au fire et au mesure que je coche une zone texte. le probléme c'est que le programme ne soustracte pas la valeur du zone de texte lorsque je decoche le checkbox que pour la 1ér checkbox que je la coche é je la décoche.

// Script de la fonction qui faire le calcul

<script type="text/javascript">
function TotalPayer(rest)
{
if (document.form1.aregler[0].checked ==true)
{
var x =document.form1.apayer.value;
var z= parseFloat(rest) + parseFloat(x);
document.form1.apayer.value = z;
}
else
{
var x =document.form1.apayer.value;
var z= parseFloat(rest) - parseFloat(x);
document.form1.apayer.value = z;
}
}

</script>

// formulaire
<form name="form1">
while ($l = mysql_fetch_array($req))
{
<table>
<tr>
<td>
<input type="text">
</td>
<td >
<input name="aregler" type="checkbox" value="<?php echo $restant; ?>" onClick="TotalPayer(this.value)">
</td>
</table>
}
<input type="text" name="apayer" value="<?php echo '0.000'; ?>" readonly="true">
</form>
A voir également:

1 réponse

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
10 nov. 2008 à 12:14
Salut, bon en fait y a plusieurs petits trucs a changer a ton code :
déjà la balise script :
<script type="text/javascript">
function TotalPayer(rest, num)
{
var x =document.form1.apayer.value;

if (document.form1.aregler[num].checked ==true)
{
var z= parseFloat(x) + parseFloat(rest) ;
}
else
{
var z= parseFloat(x) - parseFloat(rest);
}
document.form1.apayer.value = z;
}

</script>

puis dans le code

Moi j'ai mis un foreach mais c'est juste pour tester vite fait...
<?php
$aTest = Array(15,10,20);

$iCpt = 0;
foreach($aTest as $restant){
?>
<table>
<tr>
<td>
<?php echo $restant; ?>
</td>
<td >
<input name="aregler" type="checkbox" value="<?php echo $restant; ?>" onClick="TotalPayer(this.value, <?php echo $iCpt;?>)">
</td>
</table>
<?php
$iCpt++;
}
?>

Voilà, j'te laisse voir ça ;)
0