从PHP输出结果

时间:2013-07-09 10:28:20

标签: php html output

当我阅读关于我正在尝试执行的典型任务的各种帖子时,我感到困惑,毫无疑问,其他人已经做过无数次。因此,在2013年的这一点上,实现以下目标的最佳实践解决方案是什么:

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

提前致谢!

2 个答案:

答案 0 :(得分:1)

  1. 使用html创建输入。
  2. 选择重新加载页面还是AJAX
  3. 如果您选择重新加载,请使用
  4. 代码:

      <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解决方案,因为它符合您的需求,不需要服务器代码。

答案 1 :(得分: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>

更现代的版本是通过AJAX提交计算并通过Javascript填充结果而无需重新加载页面。