在PHP中,如何将表单数据发送到页面,但在用户单击提交按钮时将其引导到另一个页面?

时间:2015-10-18 11:31:44

标签: php html

以这个简单的形式为例:

<form method="post" action="reports.php">
<input type="text" name="name">
<input type="text" name="email_address">
<input type="submit" value="Submit">

我希望它将输入字段数据发送到reports.php页面,但我希望它在用户点击uploads.php按钮时将用户定向到页面"Submit"

header("Location: uploads.php")页面上使用reports.php不是一个选项,因为reports.php会将表单数据收集到一个表中供所有人查看。在uploads.php页面中,用户将上传在reports.php表格中也可见的文件。

我该怎么做?

3 个答案:

答案 0 :(得分:0)

您可以检查reports.php的请求中使用的方法是否为POST,并重定向用户。

<?php
# reports.php

if($_SERVER['REQUEST_METHOD'] === 'POST') {
    // process the data

    header("Location: ...");
    exit;
}

或者您只需创建一个add_report.php文件。

答案 1 :(得分:0)

您可以在表单提交上添加&#34;&#34;使用javascript进行活动。

单击提交按钮时 - 使用javascript收集表单数据并在必要时发送。当ajax工作时 - 用javascript将用户重定向到所需的页面。

一个完整的例子就像是:

for html

<form method="post" id="my_form">
<input type="text" name="name">
<input type="text" name="email_address">
<input type="submit" value="Submit">

for javascript

<script>
$(function(){
   $('#my_form').on('submit', function(e){
       e.preventDefault();
       var url = 'reports.php?' + $(this).serialize();
       $.get(url, function(){
           window.location.href = 'uploads.php';
       });
   })
})
</script>

可在此处找到更多信息: https://api.jquery.com/serialize/

答案 2 :(得分:0)

您需要重构代码。

听起来你的用例是:

  1. GET上传:显示上传表格
  2. POST到某处:添加到报告,然后显示上传表格
  3. 获取报告:显示报告列表
  4. 发布到报告:添加到报告,然后显示上传表格
  5. 不要担心在某个地方制造&#34;&#34;是报告文件。

    单独列出&#34;添加到报告&#34;将代码编入函数(或函数)并将它们放入自己的文件中。

    然后在报告和上传中包含该文件。

    将上传表单提交上传,然后调用&#34;添加到报告&#34;功能

    在报告中做类似的事情。