par
Cyrano » 12 mai 2006, 20:17
Bien sur que ça marche, à condition d'avoir un code logique et sans erreurs. Et tu ne pourras pas avoir les mêmes effets purement en PHP.
Ton formulaire pose problème : les attributs action et method sont strictement réservés à la balise <form>
Ensuite quand tu pointe sur un élément de formulaire avec getElementById, ça fonctionnera si,
et seulement si, l'élément visé possède un attribut id.
Corrigé de ton code :
le JavaScript
<script type="text/javascript">
function somm(valeur)
{
var val = valeur.value;
if(isNaN(val))
{
alert(val + " n'est pas un nombre !");
valeur.value = "";
}
else
{
var s=0;
for (var i = 1; i <= 1; i++)
{
var identifiant = 'id'+ i;
if (document.getElementById(identifiant).value == "")
{
s +=0;
}
else
{
s += parseFloat(document.getElementById(identifiant).value);
}
document.monform.somme.value = s * 23 +',00 €';
}
}
}
</script>
Le formulaire
<form name="monform" action="#" method="GET">
<?php
for($i = 1; $i <= 1; $i++)
{
?>
<input type="text" size=2 name="id<?php echo($i); ?>" id="id<?php echo($i); ?>" value="1" onkeyup="somm(this.value);" >
<?php
}
?>
<p>=<input type="text" value="" name="somme" >
<input type="button" value="Envoyer">
</form>
Alors j'ai pas tout corrigé, juste le plus gros pour que ça marche, mais note qu'il reste encore du nettoyage à faire coté HTML.
Bien sur que ça marche, à condition d'avoir un code logique et sans erreurs. Et tu ne pourras pas avoir les mêmes effets purement en PHP.
Ton formulaire pose problème : les attributs action et method sont strictement réservés à la balise <form>
Ensuite quand tu pointe sur un élément de formulaire avec getElementById, ça fonctionnera si, [u]et seulement si[/u], l'élément visé possède un attribut id.
Corrigé de ton code :
[b]le JavaScript[/b]
[php]<script type="text/javascript">
function somm(valeur)
{
var val = valeur.value;
if(isNaN(val))
{
alert(val + " n'est pas un nombre !");
valeur.value = "";
}
else
{
var s=0;
for (var i = 1; i <= 1; i++)
{
var identifiant = 'id'+ i;
if (document.getElementById(identifiant).value == "")
{
s +=0;
}
else
{
s += parseFloat(document.getElementById(identifiant).value);
}
document.monform.somme.value = s * 23 +',00 €';
}
}
}
</script>[/php]
[b]Le formulaire[/b]
[php]<form name="monform" action="#" method="GET">
<?php
for($i = 1; $i <= 1; $i++)
{
?>
<input type="text" size=2 name="id<?php echo($i); ?>" id="id<?php echo($i); ?>" value="1" onkeyup="somm(this.value);" >
<?php
}
?>
<p>=<input type="text" value="" name="somme" >
<input type="button" value="Envoyer">
</form>[/php]
Alors j'ai pas tout corrigé, juste le plus gros pour que ça marche, mais note qu'il reste encore du nettoyage à faire coté HTML.