我想从一个php文件向另一个php文件发送一些信息
我已经了解了$_SESSION
和$_POST
的用法,但他们给了我一些问题。
我的代码看起来像这样:
<form action="booking.php" method="post">
<select name="bookingflight">
<?php
$query = "SELECT Flight, Name
FROM Airport";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)) {
echo "<option value=\"". $row['Flight'] . ',' . $row['name'] . "\">" . $row['Flight'] . ' ' . $row['name'] . "</option>";
}
?>
</select></p>
<input type="submit" value="book flight"/>
</form>
这为我提供了所有航班的保险箱列表以及航班名称
如果我选择一个元素,它存储在$_POST["bookingflight"]
中,我可以在booking.php
中访问,这很好。
但是,它是以字符串形式给出的,而我应该能够单独处理航班和名称
理想情况下,我有两个变量,一个用于飞行,一个用于名称,我可以在booking.php
中访问。
我该怎么做?使用$_SESSION
我甚至不知道如何将列表中的选定项目分配给变量。
答案 0 :(得分:1)
替代解决方案:如果Flight
是唯一数据
while($row = mysql_fetch_array($result)) {
$flight=$row['Flight'];
$name=$row['Name'];
echo "<option value='$flight'>$flight $name</option>";
}
PHP: booking.php
<?php
$flight=$_POST['bookingflight'];
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT Flight,Name FROM Airport WHERE Flight='$flight'");
$row = mysqli_fetch_array($result);
$name= $row['Name'] ; // Here you get Name of selected Flight
mysqli_close($con);
?>
或强>
如果您的Airport
表包含任何唯一数据/ ID,则您也可以将该数据作为选项value
传递
答案 1 :(得分:1)
你是以错误的方式开始的......
为您的Airport表提供唯一的主键(名为id,INT,自动增量),并将其作为生成选项中的值传递:
echo "<option value=\"". $row['id'] ."\">" . $row['Flight'] . ' ' . $row['name'] . "</option>";
现在,当您发布表单时,您将在booking.php中获得该ID值。 因为每个航班都有一个唯一的ID,您可以发出另一个查询,然后将结果作为数组得到:
$query = "SELECT Flight, Name FROM Airport WHERE id = $id";
答案 2 :(得分:1)
把它放在你的booking.php中......
if($_POST)
{
$values = $_POST['bookingflight'];
$val= explode(',',$values);
$_SESSION['flightnumber'] = $val[0];
$_SESSION['flightname'] = $val[1];
}