我怎样才能在表格帖子之前重定向?

时间:2011-08-02 03:04:56

标签: php javascript ajax http-post

我有一个侧边栏中的表单,并显示在多个页面上。如果用户在page-a.php上并提交表单,则使用ajax将某些数据返回到该页面上的div。

但是,如果用户在page-b.php上并提交相同的表单(同样,它包含在两个页面中),我希望表单重定向到page-a.php,然后使用相同的ajax帖子加载数据。我怎样才能做到这一点?

为清晰起见编辑:

page-a.php - 当提交此表单(包含在单独的文件中)时,对page-c.php进行ajax调用,将数据加载到div中:

<form method="post" action="page-c.php">
    <input ....
               />
</form>
<div></div>

page-b.php具有完全相同的形式(包含在单独的文件中),但内容不同,所以为了将数据加载到div中,我们需要重定向到page-a.php:

<form method="post" action="page-c.php">
   <input .....
          />
</form>

那么我怎样才能使表单调用工作相同(已经实现的ajax),但是首先将它重定向到page-a.php?

4 个答案:

答案 0 :(得分:0)

如何将page-b.php的表单发布到page-a.php,然后基于HTTP_REFERRER cgi环境变量的内容,包含一些javascript来为你在页面加载时ajax post例程?

如果您执行真正的HTTP重定向,您将丢失在page-b.php上填写的所有表单数据。如果它们位于同一台服务器上,我认为您可以在Http Redirect响应之前在本地保存数据并将其与会话变量相关联。 page-a.php会在加载时检查本地表单数据。

答案 1 :(得分:0)

您是否只能将page-a.php中的JavaScript解压缩到page-a.phppage-b.php中包含的单独.js文件中?然后,当提交表单时,它将只使用相同的功能。更新该函数,将其作为调用页面的参数,以便不更新page-b.php上的div。

答案 2 :(得分:0)

将表单标记设置为

<form action="page-a.php" method="post">
    <input name="formfield" id="formfield" />
</form>

page-b.php上,您可以使用php从表单中提取已发布的数据。

<?php echo $_POST['formfield'];?>

你不需要使用javascript / ajax。

答案 3 :(得分:0)

使用此解决方法:

<form name="formA" id="formA"  method="post" 
            <?php if(curPageName() == 'page-a.php'){
                echo 'class="ajax" action="page-c.php"';
                }
                else {
                echo 'action="page-a.php"';
                }
            ?>
        >

使用此页面-a.php在页面加载时自动提交表单,将负载重定向到ajax提交

<script type="text/javascript">$(document).ready(function() {document.formA.submitbutton.click(); });</script>