【问题标题】:Passing form values from one page to another将表单值从一页传递到另一页
【发布时间】:2013-11-30 02:22:15
【问题描述】:

在我的表单中,我试图将acad_id 传递给academy_view.php 页面。表单提交后,我尝试将acad_id 附加到网址。这样我可以在academy_view.php 中使用GET 从mysql db 中提取记录。但每次提交后,post url 都有一个空的 id 字段。

academy_create.php

$acad_id = $_POST['acad_id'];
<form action="academy_view.php?id=<?php echo $acad_id; ?>" method="POST">
        Name: <input type="text" name="name"></br>
        Academy ID: <input type="text" id="acad_id" name="acad_id"></br>
<input value="SAVE" name="submit" type="submit">
</form> 

academy_view.php

if (isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] > 0){
                 // query db
            $acad_id = $_GET['id'];

//Some Code

}

提交后url显示id为空:http://www.example.com/academy_view.php?id=

【问题讨论】:

  • 您提交 acat_id 两次,作为 GET 参数和作为 POST 的表单值。仅使用带有隐藏字段的 POST:&lt;input type="hidden" id="acad_id" name="acad_id" value="$acad_id" /&gt;
  • @erny 我如何从academy_view.php 检索$acad_id
  • 您从“academy_create.php”发帖到“academy_view.php”,所以应该是$acad_id = $_POST['acad_id'];。如果您不介意,请使用 $_REQUEST 变量而不是 $_GET 和 $_POST。
  • @erny 好吧,我有点迷茫,但我有点追随你。您介意发布官方答案吗
  • 已添加。我希望这是可以理解的。您可以通过向 URL 添加一些内容或将输入(隐藏或不隐藏)添加到具有过去用户提供的数据值的表单,将状态从一个页面传输到另一个页面。

标签: php html forms get


【解决方案1】:

您可以编辑代码以使用 POST,如下所示

<form action="academy_view.php" method="POST">
    Name: <input type="text" name="name"></br>
    Academy ID: <input type="text" id="acad_id" name="id"></br>
<input value="SAVE" name="submit" type="submit">
</form> 

if (isset($_POST['id']) && is_numeric($_POST['id']) && $_POST['id'] > 0){
             // query db
        $acad_id = $_POST['id'];

//Some Code

}

【讨论】:

  • POST 不会隐藏任何内容,它可以在标题中轻松查看。当您不想要可收藏的内容(如表单保存)或内容太大而无法放入 GET 时,请使用 POST。它不提供任何安全性。
  • 我仍然没有收到任何东西传递给academy_view.php
  • html代码中学院ID字段的name改了吗?(代码片段1)
【解决方案2】:

将值(状态)从一个页面传输到另一个页面的方式是通过请求参数,例如:

  • 网址,例如 GET 参数
  • 请求正文,如表单 POST。

假设您在academy_create.php 并且已经有请求参数(GET 或 POST)acad_id,即 URL = 'http://example.com/academy_create.php?acad_id=1' 或作为表单字段,如果不希望用户可以执行以下操作填写“acad_id”(已经确定):

...
$acad_id = $_REQUEST['acad_id'];
...    
<form action="academy_view.php" method="POST">
  Name: <input type="text" name="name"></br>
  Academy ID: <input type="hidden" id="acad_id" name="acad_id" value="$acad_id"></br>
<input value="SAVE" name="submit" type="submit">
</form> 

如果您希望用户可以更改该值,只需将“隐藏”更改为“文本”即可。

如果您希望该值是只读的,请将readonly 添加到输入。

现在,您可以在academy_view.php 中再次获取值:

$acad_id = $_REQUEST['acad_id'];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 2013-10-28
    • 2018-12-01
    • 2013-05-30
    相关资源
    最近更新 更多