0

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

谢谢

4

3 回答 3

1

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

header('Location: url.php');

要更改他们被重定向到的那个页面的内容,你可以在你的页面将检查的 URL 中传递一些东西。例如:

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

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

于 2012-11-20T14:09:47.630 回答
0

使用POST/REDIRECT/GET

摘抄:

  1. 用户提交表单

    这很简单。用户完成表单并通过按下提交按钮或在他们的键盘上输入来提交。

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

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

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

    一旦我们在他们的会话中保存了用户的信息,我们需要将他们重定向回同一页面。为了使其正常工作,我们需要使用 303 重定向。这意味着我们需要在重定向中发送一个 303 标头。303 重定向将导致浏览器重新加载页面,而无需重新提交初始 HTTP POST 请求。这包括用户使用后退或刷新按钮的时间。

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

于 2012-11-20T14:08:53.560 回答
0

只有首先在 CGI 中生成整个页面,除非您通过一些非常复杂的方法来获取要设置为 document.innerHTML 或类似 Javascript 的字段的值。但是你会经历地狱来解决引用问题。使用 AJAX,它正是为此目的而创建的,并且正是为了避免与您的需求相关的彻底地狱。

或者:页面的“修改块”可以是iframe,可以设置targetform的属性,让PHP只返回iframe内容。

于 2012-11-20T14:09:59.387 回答