0

我有一个系统供用户申请驾驶执照。但是,在编写这个系统时,我遇到了一些问题,我现在面临的问题是我不知道如何从应用程序传递表单中的值传递处理器页面,传递医疗问卷页面,最后在医疗处理器页面中使用。在我的例子中,

概览布局:

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 来做到这一点吗?(可以给我粗略的 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";
        }

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

4

3 回答 3

4

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

简介的快速摘录:

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

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

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

于 2012-04-05T06:02:12.240 回答
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。它在页面上设置变量,然后删除会话,因此如果您要显示错误然后刷新页面,则错误消息将不再存在。

于 2012-04-05T06:35:19.573 回答
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

    }

问候

于 2012-04-05T06:58:48.877 回答