在PHP中传递选定的变量?

时间:2014-05-10 11:51:41

标签: php mysql

我想从一个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我甚至不知道如何将列表中的选定项目分配给变量。

3 个答案:

答案 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];



}