当我读到关于我试图执行的典型任务的各种帖子时,我感到困惑,毫无疑问,无数其他人以前都做过。因此,在2013年的这一点上,实现以下目标的最佳实践解决方案是什么:
- 我有一个html页面,它要求用户输入一些值,x1,x2。。。。。xn
- 可以有10到20个这样的输入。因此,无论出于何种原因,我都不希望它们丢失或不得不再次输入
- 基于用户输入执行计算,然后输出结果(例如y1、y2、y3..y5)
- 正如这里的一些帖子所建议的那样,我尝试了"echo"(用于PHP),效果很好。但是,它会在新页面中显示结果,因此用户输入不再可见
- 我希望用户同时看到他们的输入和结果。这样,如果他们想打印,就可以在一页上查看所有信息
- 我更喜欢使用"基本"技术,即大多数用户都可以使用的技术,他们不必在某些警告上单击"确定",更改浏览器上的某些设置,接受某些东西或其他东西等等
提前感谢!
- 用html创建输入
- 在重新加载页面或AJAX之间进行选择
- 如果选择重新加载,则使用
代码:
<form action="nextfile.php" method="POST">
<input type="text" value="" name="y1" />
<input type="text" value="" name="y2" />
<input type="submit" value="calc me" name="submit" />
</form>
然后在nextfile.php中,您需要使用$_POST
获取值,如果您希望保存这些值,请使用$_SESSION
例如
<?php
session_start();
if(isset($_POST['y1']) && isset($_POST['y2']))
{
$_SESSION['res'] = (int)$_POST['y1'] * (int)$_POST['y2'];
}
上面的代码将对名称为y1和y2的两个输入执行计算,并将它们保存在会话中。
如果你想要AJAX,那么你需要访问这个页面并查看示例
您应该考虑JavaScript解决方案,因为它将满足您的需求,并且不需要服务器代码。
最简单的方法是将表单提交到同一页面并重新填充输入字段:
// calc.php
<?php
if (isset($_POST['foo'])) {
echo 'Result: ', $_POST['foo'] + 1;
}
?>
<form action="calc.php" ...>
<input name="foo" value="<?php if (isset($_POST['foo'])) echo htmlspecialchars($_POST['foo']); ?>">
...
</form>
更现代的版本是通过AJAX提交计算,并通过Javascript填充结果,而无需重新加载页面。