PHP-返回带有更改的同一页面

PHP-返回带有更改的同一页面,php,html,Php,Html,我有一个html页面,您可以在其中插入一些信息,然后提交此表单,这将改变数据库中的信息。我通常这样做,提交按钮调用服务器中的php文件。 但我想要的是,这个php文件将返回到我发送请求的同一个html页面,并进行修改。e、 g:将添加“数据库更新成功”文本等。 没有AJAX我怎么做 谢谢使用 摘录: 用户提交表单 这很直截了当。用户通过按submit按钮或键盘上的enter键完成表单并提交表单 我们将表单数据存储在会话中 在处理数据之后,我们发现了一个错误,因此我们需要重新显示带有错误消息的表单

我有一个html页面,您可以在其中插入一些信息,然后提交此表单,这将改变数据库中的信息。我通常这样做,提交按钮调用服务器中的php文件。 但我想要的是,这个php文件将返回到我发送请求的同一个html页面,并进行修改。e、 g:将添加“数据库更新成功”文本等。 没有AJAX我怎么做

谢谢使用

摘录:

  • 用户提交表单

    这很直截了当。用户通过按submit按钮或键盘上的enter键完成表单并提交表单

  • 我们将表单数据存储在会话中

    在处理数据之后,我们发现了一个错误,因此我们需要重新显示带有错误消息的表单,但我们也希望填充 它包含了他们的数据,这样他们就不必只填写整个表单 修复一个潜在的小错误。所以我们将他们的数据存储在 会话($\u会话)。会话变量从一页转到另一页 只要会话有效,或直到它们被删除。这是 这是放置信息的理想场所,因为重定向会导致 他们的信息将被服务器立即丢弃

  • 我们使用303重定向将用户重定向回同一页面

    在会话中保存用户信息后,我们需要将其重定向回同一页面。为了让它起作用 正确地说,我们需要使用303重定向。这意味着我们需要发送一个 303标题与我们的重定向。303重定向将导致浏览器 重新加载页面,但不显示初始HTTP POST请求 重新提交。这包括用户何时使用back或refresh 纽扣

  • 我们使用会话中存储的数据重新填充表单 当页面被发送给用户时,我们用保存在用户会话中的信息重新填充页面


  • 在PHP文件中,调用header()函数重定向用户。例如:

    header('Location: url.php');
    
    header('Location: url.php?submitted=1');
    
    要更改他们重定向到的页面的内容,您可以在URL中传递您的页面将要检查的内容。例如:

    header('Location: url.php');
    
    header('Location: url.php?submitted=1');
    

    还有其他方法可以实现这一点,但对我来说,这似乎是最简单的方法。请注意,在提交页面结束之前,您不想调用header()。

    只需首先在CGI中生成整个页面,除非您使用了一些非常复杂的方法来获取要设置为document.innerHTML或类似Javascript中的某个字段的值。但要解决报价问题,你得下地狱。使用AJAX,它正是为了这个目的而创建的,也正是为了避免与您的需求相关的地狱


    或者:页面的“修改部分”可能是一个iframe,您可以设置表单的
    target
    属性,以便PHP只返回iframe内容。

    您可以显示当前正在使用的代码吗?如果我理解正确,您有两个PHP文件要合并为一个,并且在该文件上,根据输入状态有条件地显示/隐藏文本?有一个隐藏字段,最初为空。当你提交时,用类似“更新”的东西修改它。在php中,您可以选择状态(初始提交或后期提交),并在php中采取相应的行动。所以基本上只有一个php文件是的,我知道AJAX非常适合它。但我以前在ASP.NET中工作过,通常有一些东西,用修改过的内容刷新页面。所以我感兴趣的是PHPI中有类似的smth,我认为这听起来是最好的解决方案。谢谢但是你怎么看待AJAX呢?什么时候起诉它?当然,Ajax是一种选择,如果您试图避免使用基于页面的站点/应用程序,它可能是可取的。然而,它确实有局限性。例如,您不能(据我所知)通过Ajax进行文件上传。但是,如果表单数据更简单(即文本字段、选择列表等),那么Ajax仍然是一个选项。在这种情况下,您需要将表单提交的操作定向到JavaScript函数。该函数将从表单中获取值,然后使用适当的API(例如jQuery)将值发送到PHP脚本。您可以让PHP脚本返回JSON,JavaScript回调将检查JSON,然后使用JSON确定如何更新页面。