【问题标题】:Basic php form help (2)基础php表单帮助(二)
【发布时间】:2023-10-18 11:58:01
【问题描述】:

这是我昨天提出的问题的延伸。

我正在尝试制作一个小型 php 计算器,它可以显示如果人们改用 VoIP,他们可以节省多少电话费,以及使用每项服务可以节省多少。

我有一个表格,可以在这里为每月帐单提供正确的金额:

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

但现在我需要将其与其他一些数据整合并放入表格中。每个不同服务的价格都在另一个名为“values.php”的文件中。值是:

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

我希望表格的七行中的每一行都有一个从月账单值中减去的 offercalcsavings 值。

php 代码目前如下所示:

  <?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};

   }
   ?>

【问题讨论】:

  • 您实际上应该在您的问题中提出您的问题(请参阅您对我的回答的评论)“我想从中减去“$offer1(2,3,4,5,6,7)calsavings" "$monthlybill"'

标签: php forms


【解决方案1】:

我想要七行中的每一行 表有一个 减去offercalcsavings 值 从月结单价值。

您需要在某个地方进行数学运算。大概您会在输出行的 echo 语句之前执行此操作。

$offerwithsavings = $monthlybill - $offercalcsavings

然后确保将其包含在表格中的某个位置。

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

此代码的真正处方是数组和 foreach() 循环,但我想我现在应该保持简单的回答。数组和 foreach() 循环非常强大,并且相对快速且易于学习。你最好给他们一些深入的研究。

【讨论】:

  • 我这样做了,所以值如下所示: $offer1calcsavings="$monthlybill - $offer1price * 12";但它只是吐出方程式而不是进行数学运算,如下所示:nextadvisor.com/voip_services/…
【解决方案2】:

你可以像这样包含 values.php 文件:

include 'path/to/values.php';

如果您将 values.php 中的值放在一个数组中,您可以使用 foreach 循环轻松地遍历它们:
在 values.php 中;

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

然后在另一个文件中:

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

【讨论】:

  • 等等,我可以让不同的 offercalcsavings 变量显示得很好,但我不能让它做算术,我想要 "$offer1(2,3,4,5,6, 7)calsavings”从“$monthlybill”中减去,这样我就可以展示他们可以从各种不同的提供商那里节省什么。
【解决方案3】:

Egads。

使用数组!

所以:

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

那么,你真的是在循环输出:

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

【讨论】:

  • 等一下,我可以让不同的 offercalcsavings 变量显示得很好,但我无法将其用于算术,我希望从 "$monthlybill" 中减去该数字,这样我就可以展示他们可以从各种不同的提供商那里节省什么。