L'éditeur JavaScript
Visiteur non-identifié | Identifiez-vous | Devenir membre
Code perdu ? | Combien de visiteurs sur votre site ?
Rechercher :
Page d'accueil
     Home Page

JavaScript
     Tous les scripts
     Proposer un script
     Recherche de script
     AJAX
     Cours de JavaScript
     Liste de discussion
     Forums

Services :
     CountUs
     myCircle
     ClickInText
     XooIt

Trucs et astuces :
     HTML / CSS
     PHP / MySQL
     Réferencement
     Graph / Présentation
     Toutes les astuces
     Ajouter un article

MailingList :
122616 abonnés

Annuaire webmaster :      Hebergement web
     Referencement
     Sites webmasters
     XHTML - CSS2
     PHP
     Affiliation - Pub
     FAI

     Annuaire webmaster

Ressources pour webmasters :
     Kit graphique
     Foire aux questions
     Les membres
     Devenir annonceur
     Faire un lien
     Contact

Partenaire :
     Compteur live
     Créer un forum
     Le PHP facile
     Comscripts
     Liens sponsorisés
     Blog
     Page Rank
     Gifs animés, f...
     Poésie et cita...
     Azote.org - no...
     Easy-script.com
     Web creation ...
     Je crée mon site
     Outils de créa...
     Electroniq...
     K i s s design
     Créer son site...
     Les autres
     Votre site ici ?


Le forum ] [ Préférences ] [ Nouveau sujet ] [ Répondre ] [ Recherche ] [ Vos sujets ] [ Tous lus ] [ Flux RSS ]


[ Forums >> Webmasters >> Les autres langages >> Calcul d'un champs a partir d'autre ]

> Calcul d'un champs a partir d'autre
[ Posté par tim08 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 05-03-2010 à 13:13 | 2 messages ]

au fai j'ai une page qui a plusieurs formulaires qui se créent a partir d'une boucle for et dans chaque formulaire y'a un champs text qu'on appelle setup,monthly ,periode(champs select) et totalamount ce dernier se calcul en faisant cette (setup+monthly)*periode voici le code

<table width="30%" border="0" cellspacing="0" cellpadding="0" class="main" align="center">
<tr>
<td colspan="13" align="center" class="theader" nowrap> </td>
</tr>
<tr>
<td class="datatdt" align="center">City prefix</td>
<td class="datatdt" align="center">Cities</td>
<td class="datatdt" align="center">Setup</td>
<td class="datatdt" align="center">Monthly</td>
<td class="datatdt" align="center">Periode</td>
<td class="datatdt" align="center">Total Price</td>
<td class="datatdt"> </td>
</tr>
<?php for($i=0; $i<count($result2); $i++){
?>
<form name="order" action="order.php" method="post" >

<tr>
<td class="datatd" align="center" nowrap> <?php echo $result2[$i]['city_prefix']; ?> </td>
<td class="datatd" align="center" nowrap> <?php echo $result2[$i]['city_name']; ?> </td>
<td class="datatd" align="center" nowrap><input type="text" name="setup" value=" <?php echo sprintf("%01.2f",5.00*1*1.43); ?> " size="5" readonly></td>
<td class="datatd" align="center" nowrap><input type="text" name="monthly" value=" <?php echo sprintf("%01.2f",$result2[$i]['monthly']*1*1.43); ?> " size="5" readonly></td>
<td class="datatd" align="center" nowrap><select name="period" onChange="cal()"><option value="1">1</option>
<option value="3">3</option>
<option value="6">6</option>
<option value="12">12</option>
<option value="24">24</option>
</select>
</td>
<td class="datatd" align="center" nowrap><input type="text" name="totalamount" value=" <?php echo sprintf("%01.2f", ($result2[$i]['monthly']+5)*$currency*1.43); echo ' usd'; ?> " size="5" readonly></td>
<td class="datatdt" align="center">
<input type="submit" style="width: 70px" name="order_did" value="Order DID">
</td>
</tr>
<input type="hidden" name="uniq" value=" <?php echo $result2[$i]['uniq'];?> ">

</form>
<?php
$_SESSION['uniq'] = $result2[$i]['uniq'];
} ?>
</table>
//voici le code javascript
<script type="text/javascript">
function cal() {


var pl=document.order.period.value;

var mon=document.order.monthly.value;
var set=document.order.setup.value;

var resultat=Math.round(mon*pl*100)/100
document.order.totalamount.value=resultat;

}

</script>




[ Posté par v1nce ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 05-03-2010 à 15:36 | 4024 messages ]

C'est quoi la question ?

(setup+monthly)*periode

logiquement ce serait setup + (monthly * periode)

<?php for($i=0; $i<count($result2); $i++){
?>
<form name="order" action="order.php" method="post" >


comme cela tu vas te retrouver avec n formulaires qui portent le même nom. Pas terrible


[Message édité par v1nce le 05-03-2010 à 15:37]


________________
V1nce
Si je les ai oubliés les bonjour, merci et au revoir sont implicites

Brevets logiciels : dites NON !
http://petition.eurolinux.org/index.html
http://swpat.ffii.org/index.fr.html

[ Posté par tim08 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 05-03-2010 à 15:56 | 2 messages ]

je sais j'ai du changé en méttant:

<?php for($i=0; $i<count($result2); $i++){
echo'<form name=order'.$i.' action=order.php method="post" >';
?>

mais comment on accéde au champs qui doivent intervenir dans le calcul!
quant on fait un select du nombre de période ca doit calculer automatiquement le cout total pour une lign de la liste.
Je l'ai déja fait pour un seul formulaire mais pas encore pour une liste de formulaire.
(montly+setup)*period

[ Posté par v1nce ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 05-03-2010 à 18:20 | 4024 messages ]

Pour moi ce que tu veux n'est toujours pas clair.
Si tu veux que le calcul soit refait du côté client à l'aide de javascript à chaque modification du select alors le code suivant devrait t'aider.

Si c'est le php qui coince, merci d'expliquer précisément le problème.

<html>
<head>
<script>



function cal(select_reference)
{
select_reference.parentNode["totalamount"].value =
parseFloat(select_reference.parentNode["setup"].value) +
parseFloat(select_reference.parentNode["monthly"].value) *
parseFloat(select_reference.parentNode["period"].options[select_reference.parentNode["period"].selectedIndex].value);

var total = 0;
for (var i =0 ;i <document.forms.length;i++)
{
total = total + parseFloat(document.forms[i]["totalamount"].value);
}

document.getElementById("total").value=total;

}
</script>
</head>

<body>
<form name="foo1">
setup:<input type="text" name="setup" value="3" readonly><br/>
monthly:<input type="text" name="monthly" value="4" readonly><br/>
<select name="period" onChange="cal(this)">
<option value="1">1</option>
<option value="6" selected>6</option>
<option value="9" >9</option>
<option value="12" >12</option>
</select>
total:<input type="text" name="totalamount" value="7">
</form>
<form name="foo2">
setup:<input type="text" name="setup" value="8" readonly><br/>
monthly:<input type="text" name="monthly" value="4" readonly><br/>
<select name="period" onChange="cal(this)">
<option value="1">1</option>
<option value="6" selected>6</option>
<option value="9" >9</option>
<option value="12" >12</option>
</select>
total:<input type="text" name="totalamount" value="12">
</form>
total:<input id="total" type="text" value="19">


</body>
</html>


________________
V1nce
Si je les ai oubliés les bonjour, merci et au revoir sont implicites

Brevets logiciels : dites NON !
http://petition.eurolinux.org/index.html
http://swpat.ffii.org/index.fr.html




Services email :

Vous devez vous identifier pour profiter des services par email du forum.
Le forum ] [ Préférences ] [ Nouveau sujet ] [ Répondre ] [ Recherche ] [ Vos sujets ] [ Tous lus ] [ Flux RSS ]






compteur gratuit
actuellement en ligne

    PUBLICITE



     ANNUAIRE WEBMAST.
Nord Cinema
Intégrez gratuitement les sorties cinéma, DVD, dans de nombreux formats (php, iframe, javascript, rss) et ajoutez du contenu gratuit sur votre site.
http://www.nord-cinema.co...
Cat : Contenu pour votre site
Voir l'annuaire webmaster


     LES SCRIPTS :
78 à éditer
68 à copier/coller
247 des membres
2580 sur le web
>> Tous les scripts

     LES MEMBRES :
65980 membres
4653 comptes CountUs
1842 comptes myCircle

     LES FORUMS :
14 forums
40361 topics
191690 messages
>> Les forums

    SONDAGE

Vous avez un blog ou site classique ?
Un blog
Un site classique
Les deux !
La mini-astuce "Referencement" du jour par krucial
Pour savoir combien de pages de votre site sont indexées dans Google, il vous suffit de taper, dans la boite de recherche du moteur : "site:http://www.votresite.com";.
Proposer votre mini-astuce | Archives des mini-astuces
© 1999-2012 EJS - Tous droits réservés | CNIL N° 844440 | 12/02/2012 23:28:54 | Design by | Gen. en 0.503 sec.