【发布时间】:2019-11-14 10:41:57
【问题描述】:
我正在尝试验证 HTML 表单,如果提交的格式错误,则打印出错误。但是,它不是在下面打印一个错误,而是直接在表单中打印一条很长的消息。
我尝试重新格式化几乎所有内容并查找错误,但到目前为止我什么也没找到。
在 assignment_8_mortgaga_calc.php 中。这是调用另一个文件的函数。
function calcMortgage()
{
if(XMLHttpRequestObject) {
XMLHttpRequestObject.open("POST", "assignment_8_mortgage_ajax.php");
XMLHttpRequestObject.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded');
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 &&
XMLHttpRequestObject.status == 200) {
var returnedData = XMLHttpRequestObject.responseText;
processData(returnedData);
}
}
var amountfinanced = document.getElementById('amountfinanced').value;
var interestrate = document.getElementById('interestrate').value;
var data = amountfinanced + '|' + interestrate + '|';
XMLHttpRequestObject.send("data=" + data);
}
return false;
}
这是用于显示错误的表单下的div(理论上)
<div id="errordiv" style="color: red;"></div>
从另一个文件 (assignment_8_mortgage_ajax.php) 中的 HTML 表单接收数据
<?php
$myData = $_POST['data']; //This receives the data passed from the HTML form
list($amountfinanced, $interestrate) = explode('|', $myData);
进行验证:
//Do Validations
$msg = "ERROR: ";
$error_cnt = 0;
if (empty($amountfinanced))
{
$msg .= "<br><span class='errormsg'>Please enter an amount </span>";
$error_cnt++;
} else {
if (!is_numeric($amountfinanced))
{
$msg .= "<br><span class='errormsg'>Amount entered, '".$amountfinanced."' is not numeric </span>";
$error_cnt++;
}
}
if (empty($interestrate))
{
$msg .= "<br><span class='errormsg'>Please enter an interest rate </span>";
$error_cnt++;
} else {
if (!is_numeric($interestrate))
{
$msg .= "<br><span class='errormsg'>Interest rate entered, '".$interestrate."' is not numeric </span>";
$error_cnt++;
}
}
计算抵押贷款:
$interestrate_forcalc = $interestrate / 100 ;
$monthy_payment = ($amountfinanced * $interestrate_forcalc) / 12;
$monthy_payment_formatted = number_format($monthy_payment, 2);
并显示页面:
if ($error_cnt > 0)
{
print $msg;
} else {
print $monthy_payment_formatted;
}
?>
With Calculated Monthly Payment
When Clicked With Empty Fields
这是显示在小框中的消息: Error Message
抱歉,我只需要包含错误消息的图片。当我将它粘贴到文本框中时,它不会全部显示出来。我希望它会显示在“计算付款”按钮下的 div 中。
任何帮助将不胜感激。提前谢谢你。
【问题讨论】:
-
您在计算抵押贷款之前是否确保没有错误?
-
@aynber 我将代码更改为如下所示:
if ($error_cnt > 0) { print $msg; } else { $interestrate_forcalc = $interestrate / 100 ; $monthly_payment = ($amountfinanced * $interestrate_forcalc) / 12; $monthly_payment_formatted = number_format($monthly_payment, 2); print $monthly_payment_formatted; }但现在它显示“数据库错误”。 -
ERROR ON DATABASE没有显示在您的代码中的任何地方,因此您必须追踪它的来源。 -
谢谢!我发现它并在不久前修复了它。感谢您的帮助!
标签: javascript php html ajax mysqli