2008-12-04 14 views
0

Ceci est une extension d'une question que j'avais hier. J'essaie de faire une petite calculatrice php qui montrera combien les gens peuvent économiser sur leurs factures de téléphone s'ils passent à la VoIP, et combien ils peuvent économiser avec chaque service.Aide de base pour les formulaires php (2)

J'ai une forme qui recracher le montant droit pour une facture mensuelle ici:

http://www.nextadvisor.com/voip_services/voip_calculator.php?monthlybill=50&Submit=Submit

Mais maintenant je dois intégrer cela avec d'autres données et mettre dans une table. Les prix pour chacun des différents services sont dans un autre fichier appelé "values.php". Les valeurs sont les suivantes:

$offer1calcsavings="24.99"; 
$offer2calcsavings="20.00"; 
$offer3calcsavings="21.95"; 
$offer4calcsavings="23.95"; 
$offer5calcsavings="19.95"; 
$offer6calcsavings="23.97"; 
$offer7calcsavings="24.99"; 

Je veux chacun des sept lignes de la table pour avoir l'une des valeurs de offercalcsavings soustraites de la valeur monthlybill.

Le code php ressemble actuellement à ceci:

<?php $monthlybill = $_GET['monthlybill']; ?> 

Your monthly bill was <?php echo "$monthlybill"; ?> 

    <?php 
$monthybill="monthlybill"; 
    $re=1; 
    $offer ='offer'.$re.'name'; 
$offername= ${$offer}; 
    while($offername!=""){ 
    $offerlo ='offer'.$re.'logo'; 
    $offerlogo=${$offerlo}; 
    $offerli ='offer'.$re.'link'; 
    $offerlink=${$offerli}; 
$offeran ='offer'.$re.'anchor'; 
$offeranchor=${$offeran}; 
$offerst ='offer'.$re.'star1'; 
$offerstar=${$offerst}; 
$offerbot='offer'.$re.'bottomline'; 
$offerbottomline=${$offerbot}; 
$offerca ='offer'.$re.'calcsavings'; 
$offercalcsavings=${$offerca}; 

echo '<tr > 
    <td > 
<a href="'.$offerlink.'" target="blank"> 
<img src="http://www.nextadvisor.com'.$offerlogo.'" alt="'.$offername.'" /> 
</a> 
</td> 
<td ><span class="rating_text">Rating:</span> 
<span class="star_rating1"> 
<img src="http://www.nextadvisor.com'.$offerstar.'" alt="" /> 
</span><br /> 
    <div style="margin-top:5px; color:#0000FF;"> 
<a href="'.$offerlink.'" target="blank">Go to Site</a> 
<span style="margin:0px 7px 0px 7px;">|</span> 
<a href="'.$offeranchor.'">Review</a> 
</div> </td> 
<td >'.$offercalcsavings.'</td> 


    </tr>'; 
    $re=$re+1; 
    $offer ='offer'.$re.'name'; 
$offername= ${$offer}; 

    } 
    ?> 
+0

Vous devriez effectivement poser votre question dans votre question (voir votre commentaire à ma réponse) 'Je veux' $ offer1 (2,3,4,5,6,7) les valeurs "à soustraire de" $ monthlybill "' –

Répondre

1

Je veux chacun des sept lignes de la table d'avoir l'un des offercalcsavings les valeurs soustraites de la valeur de facturation mensuelle.

Vous devez faire les mathématiques quelque part. Vraisemblablement, vous le feriez avant l'instruction echo où vous publiez votre ligne.

$offerwithsavings = $monthlybill - $offercalcsavings 

Ensuite, assurez-vous de l'inclure dans votre table quelque part.

<td >'.$offerwithsavings.'</td> 

La prescription réelle pour ce code est une boucle de tableau et foreach(), mais je pensais que je garde ma réponse simple pour l'instant. Les tableaux et les boucles foreach() sont très puissants et relativement rapides et faciles à apprendre. Vous feriez bien de leur donner une étude approfondie.

+0

Merci mechler! –

+0

J'ai fait en sorte que les valeurs ressemblent à ceci: $ offer1calcsavings = "$ monthlybill - $ offer1price * 12"; mais il crache juste l'équation plutôt que de faire le calcul, comme vu ici: http://www.nextadvisor.com/voip_services/voip_calculator.php?monthlybill=50&Submit=Submit –

1

Vous pouvez inclure le fichier values.php comme ceci:

include 'path/to/values.php'; 

Si vous mettez les valeurs values.php dans un tableau que vous peut facilement passer en boucle à l'aide d'une boucle foreach:
in values.php;

$values['1calsavings'] = 24.99; 
$values['2calsavings'] = 20.00; 
etc; 

Puis, dans l'autre fichier:

include 'path/to/values.php'; 
foreach($values as $name => $amount){ 
echo '<some_markup>'; 
echo "$name $amount"; 
echo '</some_markup>'; 
} 
+0

Attendez, je peux faire apparaître les différentes variables offercalcsavings très bien, mais je ne peux pas l'obtenir pour faire l'arithmétique, je veux que "$ offer1 (2,3,4,5,6,7) calsavings" soit soustrait de "$ monthlybill" afin que je puisse montrer ce qu'ils pourraient économiser auprès de différents fournisseurs. –

1

Egads.

Utilisez les tableaux!

Alors:

$offercalcsavings[0] = "24.99"; 
$offercalcsavings[1] = "20.00"; 
etc. etc. 

Ensuite, vous bouclez la sortie vraiment:

for($i = 0; $i < CONSTANT_THAT_EQUALS_7; $i++) { 
    echo "<html bits>"; 
    echo $offercalcsavings[$i]; 
    echo $offerlink[$i]; 
    etc. etc. 
} 
+0

Attendez, je peux faire apparaître les différentes variables offercalcsavings, mais je ne peux pas l'obtenir en arithmétique, je veux que ce nombre soit soustrait de "$ monthlybill" afin que je puisse montrer ce qu'ils pourraient sauver de divers différents fournisseurs. –

+0

Dommage que je ne peux voter qu'une seule fois. +1000 pour "Egads!" –