提问者:小点点

PHP将从表单html接收的变量传递到两个PHP文件


我是php的新手,我试图从html获取POST值并传递到两个php文件中,其中

  • 第一个执行查询;
  • 第二步详细说明查询;

因此代码html:

<form action="ExecSelect.php" method="post">
<div class="row form-group">
<div class="col-md-6">

execSelect.php:

<?php
include 'connection.php';
include 'select_querys.php';

// Initialize the session 
session_start(); 
       
$SS_IdProduct = $_POST['IdProduct'];
$_SESSION['$SS_IdProduct'] = $SS_ProdSelect;


// switch($_POST['IdProduct']){
switch($_POST['IdProduct']){
    case 'Conecta':
Echo "Something 1"
    break;
    case 'Radar':
Echo "Something 2"
    break;
    default:
        echo 'ERRO! page1';
    }
?> 

和select_querys.php为:

<?php
include 'connection.php';

//On page 2
$SS_ProdSelect = $_SESSION['$SS_IdProduct'];

switch($_GET['$SS_ProdSelect']){
    case 'Conecta':
//get results from database
$result = mysqli_query($conn,"SELECT 1;");
$all_property = array();  //declare an array for saving property

    case 'Radar':
//get results from database
$result = mysqli_query($conn,"SELECT 2;");
$all_property = array();  //declare an array for saving property
    break;
    default:
        echo 'ERRO! pagina selct PHP!';
    }
?>

我做错了什么?


共2个答案

匿名用户

您正在将此文件包含在顶部:

include 'select_querys.php';

所以它是在以下任何一个之前执行的:

$SS_IdProduct = $_POST['IdProduct'];
$_SESSION['$SS_IdProduct'] = $SS_ProdSelect;

因此,在它执行时没有定义任何一个。 (当时会话甚至还没有开始。)

由于该值应该在POST数组中,因此在select_querys.php中,您可以像在execselect.php中那样,简单地从$_POST['idproduct']中读取该值:

$SS_IdProduct = $_POST['IdProduct'];

因此,您甚至不需要在这里使用session,除非您计划在将来的请求中使用该session值。

请注意,如果您在两个文件中定义了相同的变量(在本例中为$SS_IDproduct),那么当在相同的上下文中执行这些文件时(就像您在这里所做的那样),该变量的第二个声明将覆盖以前对它所做的任何更改。 这里没有发生这种情况,但是当您继续更新代码时,需要注意一些事情。

(此时还值得注意的是,您甚至没有在select_querys.php中使用$ss_prodselect,但我假设您计划在某个时候使用。)

匿名用户

我看到David已经提到了主要的错误。。。你也在问题中提到了你正在使用post方法,那么为什么在select_querys.php中使用$_get['$ss_prodselect']

相关问题