Looks to me like you are closing your form before you put anything in
it. Therefore, the loan_amount is not set making the value 0. Follow
the math, and you are dividing by 1-1.
Change this line:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"></form>
to:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
and you should be good to go.
Joseph
Gary wrote:
I have a mortgage amortization script that was working fine,now it seems to
have gone awry. Below is the entire script plus input page. I am getting an
error
Warning: Division by zero in
/home/content/J/a/y/Jayski/html/one2one/Ricksrecursivefunctions.php on line
47
Which is (pow($intCalc,$totalPayments) - 1);
Frankly I am not even sure the information is being passed to the script.
Anyone see what I am missing?
Gary
<div id="onecol">Calculate your Loan</div>
<div id="leftcontent">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"></form>
<table>
<tr>
<td style="background-color:#B1D8D8" width="110px">Loan Amount</td>
<td><input name="loan_amount" type="text" size="25" /> USD</td>
<td><a href="javascript:void(0);" onmouseover="Tip('This is the
amount of money to be loaned.')" onmouseout="UnTip()"><img
src="images/help.png" class="noborder"/></a></td>
</tr>
<tr>
<td style="background-color:#B1D8D8" width="110px">Type of Loan</td>
<td>
<select name="type" size="1" id="type">
<option>Installment</option>
<option>Balloon</option>
</select></td>
<td><a href="javascript:void(0);" onmouseover="Tip('This is the method of
repayment.')" onmouseout="UnTip()"><img src="images/help.png"
class="noborder"/></a></td>
</tr>
<tr>
<td style="background-color:#B1D8D8" width="100px">Term of Loan</td>
<td><input name="loan_term" type="text" size="5" />
</select>Months</td>
<td><a href="javascript:void(0);" onmouseover="Tip('This is the amount of
time that the money is loaned for.')" onmouseout="UnTip()"><img
src="images/help.png" class="noborder" /></a></td>
</tr>
<tr>
<td style="background-color:#B1D8D8" width="140px">Interest Rate</td>
<td><input name="int_rate" type="text" size="10" /> Per
Annum</td><td><a href="javascript:void(0);" onmouseover="Tip('Percentage
(%) charged on loan on an annual basis. <br />Please see our FAQs for
information on usury rates. <br />If no amount is entered this will be
0%.')" onmouseout="UnTip()"><img src="images/help.png" class="noborder"
/></a></td>
</tr>
</table>
<label>
<input type="submit" name="submit" id="submit" value="submit" />
</label>
</form>
<?php
function amortizationTable($paymentNum, $periodicPayment, $balance,
$monthlyInterest) {
$paymentInterest = round($balance * $monthlyInterest,2);
$paymentPrincipal = round($periodicPayment - $paymentInterest,2);
$newBalance = round($balance - $paymentPrincipal,2);
print "<tr>
<td>$paymentNum</td>
<td>\$".number_format($balance,2)."</td>
<td>\$".number_format($periodicPayment,2)."</td>
<td>\$".number_format($paymentInterest,2)."</td>
<td>\$".number_format($paymentPrincipal,2)."</td>
</tr>";
# If balance not yet zero, recursively call amortizationTable()
if ($newBalance > 0) {
$paymentNum++;
amortizationTable($paymentNum, $periodicPayment, $newBalance,
$monthlyInterest);
} else {
exit;
}
} #end amortizationTable()
# Loan balance
$balance =($_POST['loan_amount']);
# Loan interest rate
$interestRate = ($_POST['int_rate']);
# Monthly interest rate
$monthlyInterest = ("$interestRate / 12");
# Term length of the loan, in years.
$termLength =($_POST['loan_term']);
# Number of payments per year.
$paymentsPerYear = 12;
# Payment iteration
$paymentNumber =($_POST['loan_term']);
# Perform preliminary calculations
$totalPayments = $termLength * $paymentsPerYear;
$intCalc = 1 + $interestRate / $paymentsPerYear;
$periodicPayment = $balance * pow($intCalc,$totalPayments) * ($intCalc -
1) /
(pow($intCalc,$totalPayments) - 1);
$periodicPayment = round($periodicPayment,2);
# Create table
echo "<table width='50%' align='center' border='1'>";
print "<tr>
<th>Payment
Number</th><th>Balance</th>
<th>Payment</th><th>Interest</th><th>Principal</th>
</tr>";
# Call recursive function
amortizationTable($paymentNumber, $periodicPayment, $balance,
$monthlyInterest);
# Close table
print "</table>";
?>
</div>
__________ Information from ESET Smart Security, version of virus signature database 4932 (20100310) __________
The message was checked by ESET Smart Security.
http://www.eset.com
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php