我有4个输入框,3个是隐藏字段。第一个输入框取一个数字,而第二个输入框显示数字的20%,第三个输入框显示从图中减去初始数字的20%得到的答案。这是我的意思的典型例子。
textbox A = 100
20% of 100 = 20.
textbox B = 20.
100 - 20 = 80.
textbox C = 80
我已经能够完成所有这些并将变量传递到输入框,但是当我加载页面时,它使用未定义的变量填充文本框,当我单击按钮时,它会执行脚本和初始文本未定义的变量插入到我的数据库中。我如何将答案发布到我的数据库而不是发布页面的负载。 这是我的代码。
加载时:
<?php
if (isset($_POST['amount'])&& ($_POST['iniamount']) &&
($_POST['outamount'])) {
$amount = $_POST['amount'];
$iamount = 0.2;
$inimain = $iamount * $amount;
$outamount = $amount - $inimain;
}
$date = date("Y-m-d H:i:s");
?>
此处为表格
<div class="form">
<form method="POST" enctype="multipart/form-data" name="donation" class="" >
<div class="form-group ">
<label for="cname" class="control-label col-lg-2">Donation Amount <span class="required">*</span></label>
<div class="col-lg-10">
<input class="form-control" id="amount" name="amount" type="text" required />
<input name="email" type="hidden" class="form-control" id="email" required />
<input name="iniamount" type="text" class="form-control" id="iniamount" value="<?php echo $inimain; ?>" required />
<input name="outamount" type="text" class="form-control" id="outamount" value="<?php echo $outamount; ?>" required />
<input name="date" type="hidden" class="form-control" id="outamount" value="<?php echo $date; ?>" required />
</div>
答案 0 :(得分:1)
虽然接受的答案是有效的,但我认为从头开始初始化变量将为您提供更好的服务。
<?php
$inimain = '';
$outamount = '';
// repeat for any other variable you might need in your form
if (isset($_POST['amount'])&& ($_POST['iniamount']) && ($_POST['outamount'])) {
$amount = $_POST['amount'];
$iamount = 0.2;
$inimain = $iamount * $amount;
$outamount = $amount - $inimain;
}
$date = date("Y-m-d H:i:s");
?>
这将使您可以保持HTML表单简单易读,并且将来可以提供更大的灵活性,例如,如果您想为某些输入字段设置默认值。
答案 1 :(得分:1)
<?php
$amount = 0.0;
$iamount = 0.0;
$inimain = 0.0;
$outamount = 0.0;
if (isset($_POST['amount'])&& ($_POST['iniamount']) && ($_POST['outamount'])) {
$amount = $_POST['amount'];
$iamount = 0.2;
$inimain = $iamount * $amount;
$outamount = $amount - $inimain;
}
$date = date("Y-m-d H:i:s");
?>
问题来自变量。 启动变量。实际上不是这样的,因为它是为了计算。 但如果你喜欢这样,当文本框为空时,它将导致未定义的错误。系统将无法知道如何处理它。
$inimain = '';
$outamount = '';
这是正确的方法。
$amount = 0.0;
$iamount = 0.0;
$inimain = 0.0;
$outamount = 0.0;
<input name="iniamount" type="text" class="form-control" id="iniamount" value="<?php if(isset($_POST['iniamount'])){echo $inimain;} ?>" required />
<input name="outamount" type="text" class="form-control" id="outamount" value="<?php if(isset($_POST['$outamount'])){echo $outamount;} ?>" required />
<input name="date" type="hidden" class="form-control" id="outamount" value="<?php if(isset($_POST['$date'])){echo $date;} ?>" required />