2009-12-29 171 views
-2

我正在使用FrameSets将屏幕分成两个窗格。左侧窗格显示链接,而右侧窗格显示实际页面。我想知道在右窗格中打开一个输入表单并提交时如何处理该问题。如何处理Frameset,POST和重定向

当我提交表单时,该操作被传递给另一个.php文件,该文件将记录保存到MySQL数据库中,并且必须返回到右窗格中的相同条目表单。

问题是保存后,屏幕空白,我担心如果返回,它可能会在整个屏幕上显示Entry窗体而不是右窗格。

请帮助我解决这个问题。

回答

2

在右窗格中,您有一个表格,它向POST文件发送POST请求。该请求的目标从一开始就是浏览器收集服务器响应的地方。如果这个目标是你的右窗格,那么php文件(新窗体)的响应将显示在右窗格中。

<frameset> 
    <frame id="leftpane" src="leftpane.php"></frame> 
    <frame id="rightpane" src="rightpane.php"></form> 
</frame> 

rightpane.php

... 
<form action="rightpane.php" target="rightpane" method="post"> 
... 
</form> 
... 
+0

我是否需要使用“标题”从第二个文件重定向? – RKh 2009-12-29 11:48:10

+0

好的,明白了。除了你的建议之外,我在.php文件的顶部添加了这行代码: RKh 2009-12-29 12:33:33

+0

关于HTTP-Header重定向,那样工作。重定向告诉浏览器在接收时请求另一个URL(在同一帧中)。你想要做的是告诉浏览器把接收到的文档放在另一个框架中(这是不可能的)。 – Alsciende 2009-12-29 13:44:03

0

我不是你的情况,但几个指针完全清楚:

  • 可以刷新邻近帧后通过JavaScript提交它们来自同一个域。
  • 您可以使用target="_top"从框架内提交到整个窗口(允许全面更新)。
  • 我认为你可以使用target="framename"提交到相邻的框架。
+0

其实,我想在右窗格中直接控制回报名表太多。 – RKh 2009-12-29 11:18:40

+0

如果我没有记错(我已经使用框架已经很长时间了),您应该可以通过将窗体的目标设置为右窗格的名称,然后重定向到脚本中的窗体来完成此操作。 – 2009-12-29 11:20:48

+0

但我不遵循如何使用另一个文件中的_target。我进一步清理:(1)表格已提交。 (2).php文件处理条目。 (3)重定向回右窗格中的窗体。现在如何重定向以在右窗格中打开相同的表单。目前它正在整个页面打开。 – RKh 2009-12-29 11:27:47

0

您可以为表单指定“目标”属性。它控制着输出在处理表单提交后将显示在哪个帧中。

但我强烈建议不要使用帧!使用正确的HTML元素元素为页面提供结构并使用CSS格式化所有元素更好。

+0

目前,我无法撤销我的方法。如何使用另一个文件中的_target在右窗格上打开相同的表单? – RKh 2009-12-29 11:25:45