Javascript 现场计算走下一步,然后返回到我原来设置的数字

Javascript 现场计算走下一步,然后返回到我原来设置的数字,javascript,php,html,Javascript,Php,Html,我已经完成了实时计算的代码,这意味着当用户输入所有字段的数据时,结果将相应地改变。然后,我的页面有一个“下一步”按钮,让用户进入下一步。如果用户转到下一页并希望返回编辑他输入的内容,结果将是$0.00,但不是实际结果,除非用户在输入框中重新输入值。因此,我想要的是,当用户返回页面时,结果仍然是显示的结果。 谢谢你抽出时间 <!doctype html> <html> <script src="https://ajax.googleapis.com/ajax/libs

我已经完成了实时计算的代码,这意味着当用户输入所有字段的数据时,结果将相应地改变。然后,我的页面有一个“下一步”按钮,让用户进入下一步。如果用户转到下一页并希望返回编辑他输入的内容,结果将是$0.00,但不是实际结果,除非用户在输入框中重新输入值。因此,我想要的是,当用户返回页面时,结果仍然是显示的结果。 谢谢你抽出时间

<!doctype html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('input').keyup(function(){
var $rincome = parseInt($('#textfield1').val());
var $rate = parseInt($('#textfield2').val());
var $age = parseInt($('#textfield3').val());
var $rage = parseInt($('#textfield4').val());
var rmoney = fv($rate/100,$rage - $age ,0,$rincome,0);
$('#rmoney').html(rmoney);
});
});
</script>
<form action="process.php" method="post" autocomplete="on">
<b>Income (SGD):</b>
<input type="number" id="textfield1" value="<?php echo $_POST['rincome'];?>" name="rincome" min = "0"  />
</p>

<p>
<b>Interest rate (%):
<input type="number" id="textfield2" value="<?php echo $_POST['rate'];?>"  name="rate" min = "0" step = "0.1"/> 
</p>

<p>
<b>Age:
<input type="number" id="textfield3" value="<?php echo $_POST['age'];?>" name="age" min = "0" max = "70"/>
</p>

<p>
<b>Life expectancy:
<input type="number" id="textfield4" value="<?php echo $_POST['rage'];?>" name="rage" min = "0"/>
</p>

<p>
<b>The total money you will have:$<span id = "rmoney">0.00</span>
</p>

<script>
function fv(r,n,p,pv)
{
var sum = pv;
for (var i=0;i<n;i++ )
{ 
    sum += sum*r + p;
}
return sum.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,');
}
</script>


<p style="text-align:center" style="font-size:160%">
<input type="submit" name="submit" Value="Next"/>
<input type="reset" value="Reset" />
</p>
</form>

<?php

session_start();
$_SESSION["rate"] = $rate;
$_SESSION["rincome"] = $rincome;
$_SESSION["age"] = $age;
$_SESSION["rage"] = $rage;
?>

$(文档).ready(函数(){
$('input').keyup(函数(){
var$rincome=parseInt($('#textfield1').val();
var$rate=parseInt($('#textfield2').val();
var$age=parseInt($('#textfield3').val();
var$rage=parseInt($('#textfield4').val();
var rmoney=fv($rate/100,$rage-$age,0,$rincome,0);
$('#rmoney').html(rmoney);
});
});
收入(新加坡元):

您需要使用会话。如果不想使用会话,可以从第一步开始序列化数据,并将其保留在web表单的隐藏字段中。当用户返回到上一步时,您可以从通过回发接收的隐藏字段中反序列化此步骤的数据。

您需要使用会话。如果不想使用会话,可以从第一步开始序列化数据,并将其保留在web表单的隐藏字段中。当用户返回到上一步时,您可以从通过回发接收的隐藏字段中反序列化此步骤的数据。

您需要做两件事:

  • 将输入数据存储在会话变量中:处理表单时,将输入数据存储在会话变量中。返回页面时,检查是否设置了此会话变量。。如果是,则使用它重新填充表单
  • 在页面加载时,运行一次计算jQuery脚本:这是为了确保如果表单输入已从上面的步骤1中预填充,页面将从一开始显示计算的输出。我会将“keyup”部分下的所有代码放入另一个函数中,并在页面加载和keyup时调用该函数
  • 干杯


    要回答您的其他问题,请执行以下操作:

    Q) 我应该如何告诉结果以显示存储的数据? A) 在显示表单之前,在当前文件中检查是否设置了$\u会话变量。如果已设置,则使$\u POST=$\u会话。这将确保使用存储的值

    Q) 当用户单击“上一步”时,它将显示用户在输入框中输入的内容,但结果仍然为0,除非用户重新输入至少一个值?
    A) 如果在页面加载时运行jQuery计算(除了在“键向上”时),这将得到解决。

    您将需要做两件事:

  • 将输入数据存储在会话变量中:处理表单时,将输入数据存储在会话变量中。返回页面时,请检查此会话变量是否已设置。如果已设置,请使用它重新填充表单
  • 在页面加载时,运行一次计算jQuery脚本:这是为了确保如果表单输入已从上面的步骤1中预填充,则页面将从一开始显示计算的输出。我会将所有代码放入“keyup”下节转换为另一个函数,并在页面加载和键控时调用该函数
  • 干杯


    要回答您的其他问题,请执行以下操作:

    Q) 我应该如何告诉结果以显示存储的数据? A) 在显示表单之前,在当前文件中检查是否设置了$\u会话变量。如果已设置,则使$\u POST=$\u会话。这将确保使用存储的值

    Q) 当用户单击“上一步”时,它将显示用户在输入框中输入的内容,但结果仍然为0,除非用户重新输入至少一个值?
    A) 如果在页面加载时运行jQuery计算(除了在“键向上”时),这将得到解决.

    谢谢。我会尝试这样做。实际上我已经存储了数据,我应该如何告诉结果以显示已使用的存储数据?我在html输入类型中使用了echo,因此当用户单击“上一步”时,它将显示用户在输入框中输入的内容,但除非用户重新输入至少一个值,否则结果仍然为0。您能详细说明一下吗但除非用户重新输入至少一个值,否则结果仍然为0。您所说的“结果”是什么意思这里?您将拥有的总金额:$0.00结果就是这个意思。对不起,我不知道这个调用是什么,所以我只说结果。谢谢您的时间谢谢。我会尝试这样做。实际上我已经存储了数据,我应该如何告诉结果显示使用了存储的数据?我在html输入类型中使用了echo,因此当用户单击“上一步”时,它将显示用户在输入框中输入的内容,但除非用户重新输入至少一个值,否则结果仍然为0。您能否详细说明“但除非用户重新输入至少一个值,否则结果仍然为0”。您所说的“结果”是什么意思这里?您将拥有的总金额:$0.00。结果就是这个意思。对不起,我不知道这个调用是什么,所以我只说结果。谢谢您的时间谢谢。我尝试先做。我添加php部分来存储数据,但我仍然不知道如何告诉结果。谢谢您回答我的问题。根据您的修改更新您的问题ions.看,你需要阅读会话以及如何使用会话。请参阅本页的示例。你需要将数据从$\u POST写入$\u会话。然后从$\u SESSION还原变量谢谢。我尝试先这样做。我添加了php部分来存储数据,但我仍然不知道如何告诉结果。谢谢你回答我的问题上。根据您的修改更新您的问题。看,您需要阅读有关会话以及如何使用会话的信息。请参阅本页上的示例。您需要将数据从$\u POST写入$\u会话。然后从$\u会话还原变量