我是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!';
}
?>
我做错了什么?
您正在将此文件包含在顶部:
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']
呢