首页 > 解决方案 > 不能在不同的 php 文件中使用表单的值

问题描述

在不同的 php 文件中使用表单的值时遇到问题:

我的firstpage.php

<form method="post">
<input type="radio" name="rdbbtn" value="1"> One
<input type="radio" name="rdbbtn" value="2"> Two
</form>

secondpage.php在这里

<?php   
include("firstpage.php");
$result = $_POST['rdbbtn'];
if ($result == "1") {          
    echo 'thirdpage.php';      
}
else {
    echo 'fourthpage.php';
}
?>

问题:

注意:未定义索引:rdbbtn in

为什么我不能使用“rdbbtn”?我应该有类似的东西

$rdbbtn = $_POST['rdbbtn'];

在 secondpage.php 中?试过这个,但没有解决我的问题。firstpage.php 和 secondpage.php 在同一个目录中。可能这是我看不到的一些非常明显的事情......谢谢!

编辑:我接受了 pradeep 的回答,因为这最能帮助我弄清楚问题应该是什么。想说谢谢大家出现在这里并试图提供帮助!

标签: phpformspost

解决方案


当您更改当前页面时,它会重置该值并且$_POST为空。

您可以尝试将表单操作设置到下一页。它会工作

<form method="post" action="secondpage.php">
    <input type="radio" name="rdbbtn" value="1"> One
    <input type="radio" name="rdbbtn" value="2"> Two
    <input type="submit" name="" value="Next">
</form>

否则,您可以function在一个类中创建一个并将每个页面操作设置为此功能。

并将您的每个表单数据设置为session.

最后,当您更改页面时,您会读取数据表单session

Class FormAction{
  public function setFormDataToSession(){
     if(isset($_POST['rdbbtn']){
        $_SESSION['rdbbtn'] = $_POST['rdbbtn'];
     }  
   }
}

在您的页面中只需获取会话值

echo $_SESSION['rdbbtn'];

推荐阅读