有什么更好的方法可以将值从第1页传递到第3页?

时间:2012-04-05 05:54:13

标签: php javascript database post

我有一个供用户申请驾驶证的系统。然而,在对这个系统进行编码时,我遇到了一些问题,而我现在面临的问题是我不知道如何从应用程序传递处理器页面的表单传递值,通过医疗问卷页面,最后用于医疗处理器页面。在我的例子中,

概述布局:

apply2.php> apply_now.php> medical_question.php> medical_question_now.php> success.php

主要问题:

$selectedPermit=$_POST['cat'];值从apply_now.php传输到medical_question_now.php的最佳方法是什么?

说明:

我在apply2.php中有一个复选框表单,点击提交后,它会链接到apply_now.php。

在apply_now.php(php处理器页面)中,我能够检索复选框中选择的值并在此处进行一些处理。例如。如果用户在过去3年内未完成医疗问卷调查,则会将其带到医疗问卷页面,而不会将任何数据插入数据库。如果他们之前做了医疗调查问卷,那么它将直接进入成功页面。

在医疗问卷中,有23个问题,每个答案将通过medical_questionnair_now.php页面存储在数据库中。

medical_question_now.php(一个php处理器页面)包含查询以将医疗问卷答案插入数据库,但是,我想插入从apply2.php中的复选框中检索的值。

Success.php只是一个告诉他们恭喜的页面。

我目前的想法: 我认为我可以通过两种方式来传输数据。

  1. 将apply_now.php与medical_question.php结合使用。

  2. 使用隐藏输入,这意味着处理器页面必须全部向用户公开。

  3. 经过一番研究,我发现SESSION可以帮助我实现它,但任何人都知道如何使用SESSION来做到这一点? (可以给我一个粗略的解释,所以我可以尝试一下)

  4. 我希望坚持使用php以达到更好的理解目的,但是如果你们认为有一个更好的javascript()可以帮助哪些容易理解,请指导我...我想学习新的东西。感谢

    另一个问题

    我想问的另一个问题是,如果在我的php处理器页面上,我想用alert()替换echo;我可以这样说:

    if($missing1=='1' or $missing2=='1')
            {
                echo '<script>alert("Sorry. You did have not met the Pre-Requisites for '.$permit .'");</script>';
                header ('Location:s_apply2.php');
            }
    

    而不是:

    if($missing1=='1' or $missing2=='1')
            {
                echo"Did not meet pre-requisites for $permit";
            }
    

    非常感谢你的帮助......我从这里学到了很多东西。谢谢你提前谢谢。

3 个答案:

答案 0 :(得分:4)

我建议实际阅读关于会话处理的PHP文档,了解如何使用$_SESSIONhttp://us3.php.net/manual/en/book.session.php

摘要摘录摘录:

  

PHP中的会话支持包含一种保留某些数据的方法   跨后续访问。这使您可以构建更多自定义   应用程序并增加您的网站的吸引力。

     

访问您网站的访问者被分配了一个唯一的ID,即   所谓的会话ID。这可以存储在用户的cookie中   在URL中传播或传播。

     

会话支持允许您在请求之间存储数据   $ _SESSION超全局数组。当访问者访问您的站点时,PHP   将自动检查(如果session.auto_start设置为1)或打开   您的请求(显式通过session_start()或隐式通过   session_register())是否已发送特定会话ID   请求。如果是这种情况,则先前保存的环境是   重新创建。

答案 1 :(得分:1)

我同意会话方法。例如,如果您想从搜索页面收到错误消息并将其发送回主索引,您可以在搜索页面上执行此操作,无论错误语句应该在何处:

session_start();
$_SESSION['error'] = "Error! You have done something wrong!";
header('Location: index.php');

然后在index.php页面上,像这样:

session_start();
$error = $_SESSION['error'];
session_destroy();  

然后,在您希望显示消息的地方回显$ error。它在页面上设置变量,然后删除会话,因此如果要显示错误然后刷新页面,则错误消息将不再存在。

答案 2 :(得分:1)

使用会话

session_start();
$selectedPermit = $_POST['cat'];
$_SESSION['selectedPermit'] = $selectedPermit;

在另一页上使用:

session_start();
echo $_SESSION['selectedPermit'];

Javascript问题:

if($missing1=='1' or $missing2=='1')
    {
        echo '<script>alert("Sorry. You did have not met the Pre-Requisites for '.$permit .'");\n";
        echo 'location.href="s_apply2.php";</script>';
       // header ('Location:s_apply2.php'); use javascript instead of header function

    }

此致