将值从第1页传递到第3页的任何更好的方法


Any better way to pass values from page 1 to page 3?

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

概览布局:

apple2.php>apple_now.php>medical_question.php>medial_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来实现它吗?(可以给我SESSION的大致解释,这样我就可以试用了)

我希望为了更好地理解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";
        }

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

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

简介快速摘录:

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

访问您网站的访问者将被分配一个唯一的id,即所谓的会话id。这要么存储在用户的cookie中侧或在URL中传播。

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

使用会话

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
    }

问候

我同意sessions方法。例如,如果你想从搜索页面获得错误消息并将其发送回主索引,你可以在错误声明应该在的搜索页面上这样做:

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

然后在index.php页面上,显示如下内容:

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

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