【问题标题】:Update page after successful insertion into MySQL table成功插入 MySQL 表后更新页面
【发布时间】:2012-09-29 01:22:04
【问题描述】:

我正在制作一个包含大量字段的页面,这些字段允许用户输入信息并将其提交到数据库。这个页面叫做'add.php' 我创建了一个'form'标签,并将信息发布到另一个名为'process.php'的页面,在那里收集信息,然后插入到数据库中。我想让用户知道它是否成功,所以我想知道如何在“add.php”页面上告诉用户一些特定的东西。比如“插入成功!”在页面顶部。

我想在“add.php”中包含“process.php”代码,然后在表单的操作中调用“add.php”,但代码在第一次加载页面时被调用,这在数据库中插入一个完全空白的条目。

我是否应该实现某种仅在单击“提交”按钮后才设置为 true 的标志?还是有其他方法可以更新页面并告诉用户插入的状态?

我可以根据需要粘贴相关代码。 :)

谢谢!

【问题讨论】:

    标签: php mysql mysqli updates


    【解决方案1】:

    假设您在表单和 php 中使用post 方法,您可以简单地检查是否发布了帖子:

    if ($_SERVER['REQUEST_METHOD'] === 'POST')
    {
      // form was posted, process and display output
    }
    else
    {
      // nothing was posted, normal get request, show form
    }
    

    【讨论】:

    • 工作就像一个魅力。我只是在 form.php 中有一个包含,并且表单页面在操作中调用自身。它检查帖子,如果发布了帖子,则包括处理。非常感谢!
    【解决方案2】:

    只需检查查询是否正常工作。如果没有抛出异常,它主要有,并添加适当的输出消息。

    首先你需要检查和处理错误

    try
    {
    
    } 
    catch(Exception $e){
    header('Location:oldlocation.php?succ=0')
    exit();
    }
    header('Location:oldlocation.php?succ=0')
    exit();
    

    如果一切顺利,您还可以重定向到新位置(如代码所示)。这必须正确完成,您可以使用其他数据重定向回旧位置,例如

    oldlocation.php?succ=1;
    

    如果出现问题重定向到

    oldlocation.php?succ=0
    

    然后使用 $_GET["succ"] 获取 succ 并打印相应的消息。

    如果你知道,请评论。

    【讨论】:

      【解决方案3】:

      这就是我要做的... 将您的处理数据保存在一个文件中,并在最后包含表单文件

      //add.php
      
      //if the form is submitted make the database entry
      if(isset($_POST['foo']) AND $_POST['foo'] != '')
      {
      //code to process form submission
      $success = 'success!';
      
      }
      //include the form
      include addform.php
      

      在 addform.php 中放置您的表单。包括一个正在监视 $success 以提醒条目成功的“isset”

      //addform.php
      
      <?php if(isset($success)){ echo "<h2> Data successfully entered! </h2>";} ?>
      
      <form action='' method='POST'>
      <input type='text' name='foo' />
      //etc
      </form>
      

      因此,一旦您提交表单,代码就会从 add.php 的顶部开始 - 'isset' 看到 $_POST 提交,运行表单提交代码并设置成功变量。然后,它包括表单页面。表单页面有一个“isset”,它正在监视成功变量。当您第一次导航到页面时,或者如果您刷新,add.php 代码将跳过第一个代码块(表单提交内容)并且不会进行数据库提交或设置成功变量。

      【讨论】:

        猜你喜欢
        • 2017-09-02
        • 2017-02-27
        • 2016-10-09
        • 2016-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-25
        相关资源
        最近更新 更多