【问题标题】:Any better way to pass values from page 1 to page 3?将值从第 1 页传递到第 3 页的任何更好的方法?
【发布时间】:2012-04-05 05:54:12
【问题描述】:

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

概览布局:

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 处理器页面上,我想将 echo 替换为 alert();我可以这样做吗:

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 javascript database post


    【解决方案1】:

    我建议实际阅读有关会话处理的 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 请求。如果是这种情况,则先前保存的环境是 重新创建。

    【讨论】:

    • 抱歉,您如何在会话中存储数组结果?是否可以?因为复选框的结果将是一个数组
    【解决方案2】:

    使用会话

    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
    
        }
    

    问候

    【讨论】:

    • 感谢您的建议...注意...我会在这种情况下再次使用 echo...谢谢
    【解决方案3】:

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

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

    然后在 index.php 页面上,如下所示:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 2021-03-24
      • 1970-01-01
      • 2018-08-23
      • 2019-07-10
      • 2020-05-13
      • 2018-05-08
      相关资源
      最近更新 更多