Основная помощь php формы (2)
Это продолжение вопроса, который у меня был вчера.
Я пытаюсь сделать небольшой 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";
Я хочу, чтобы в каждой из семи строк таблицы было вычтено одно из значений предложенной суммы сбережений из значения месячного счета.
Код 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};
}
?>
3 ответа
Я хочу, чтобы в каждой из семи строк таблицы было вычтено одно из значений предложенной суммы сбережений из значения месячного счета.
Вам нужно где-нибудь сделать математику. Предположительно, вы сделали бы это перед оператором echo, в котором вы выводите строку.
$offerwithsavings = $monthlybill - $offercalcsavings
Тогда просто обязательно включите его в свою таблицу где-нибудь.
<td >'.$offerwithsavings.'</td>
Настоящим рецептом этого кода является цикл с массивом и циклом foreach(), но я подумал, что пока оставлю свой ответ простым. Массивы и циклы foreach() очень мощные, относительно быстрые и простые в изучении. Вы бы хорошо, чтобы дать им немного углубленного изучения.
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.
}
Вы можете включить файл 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>';
}