2013-07-09 73 views
-3

当我阅读关于我正在执行的典型任务的各种帖子时,我感到困惑,毫无疑问,无数其他人已经完成了它。因此,在2013年的这一点是什么是实现以下最佳做法的解决方案:从php输出结果

  • 我有一个html页面,要求用户的许多值,x1,x2,..... xn。
  • 可能有10到20个这样的输入。因此,我不希望它们因任何原因而丢失或不得不再次输入。
  • 基于用户输入执行计算,然后输出结果(例如,y1,y2,y3 ... y5)。
  • 正如这里的一些帖子所建议的那样,我尝试了“echo”(对于PHP),这很好。但是,它会在新页面中显示结果,因此用户输入不再可见。
  • 我希望用户看到两者 - 它们的输入和结果。这样,他们可以打印,如果他们想要,并在一个页面上看到所有信息。
  • 我更喜欢使用“基本”技术,即。技术,大多数用户可以使用,他们不必点击确定的一些警告,改变他们的浏览器设置,接受一些事情或其他等。

在此先感谢!

+2

你的问题陈述是相当长的,我认为你寻找一个基于Ajax的解决方案。 – DevZer0

回答

1
  1. 使用html创建输入。
  2. 如果选择重装,然后刷新页面或AJAX
  3. 之间选择使用

代码:

<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,那么你需要访问this page and see examples

你应该想到的JavaScript的解决方案,因为它会满足您的需求,不需要服务器代码。

0

最简单的方法是将表单提交到同一页面,重新填充输入字段:

// 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> 

更现代版本将通过JavaScript通过AJAX提交的计算和填充结果无需重新加载页。

+0

Robert和deceze都完美地回答了我的问题。谢谢。 – user1909173