0

在我的下拉列表中,每一行都有来自 db 的 3 个字段。我需要以某种方式将这些传递给另一个表单,我将在另一个 SQL 语句中引用它们。

我不确定如何通过它们。任何帮助将非常感激。

<form action='obtainaprice.php' method='POST'>
<?php

echo "<select name='makes' id='searchtext'>\n";

    $query1 = "SELECT DISTINCT make, type, model FROM device ORDER BY make, type, model";

    $result1 = mysql_query($query1)
       or die ("Couldn't execute query.");

    while ($row1 = mysql_fetch_array($result1))
    {
         $i=0;
             echo "<option value= \"" . $i . "\">" . $row1['make'] . " " . $row1['type'] . " " . $row1['model'] . "</option>";

             $i++;
    }

    echo "</select>\n";
?>
<input type="image" id="buttons" alt="Search" img src="images/button.png">
</form>
4

2 回答 2

0

您的 option 元素只能传回 1 个东西(一个字符串),因此在运行下一个 SQL 语句之前,您必须先对其进行解析以获取品牌、类型和模型。

为什么没有 3 个选择元素?1 为每个品牌、类型、型号。

您要在其中使用这些值的下一条 SQL 语句是什么?

于 2012-12-18T23:21:22.890 回答
0

在这种情况下,您可以将选项的值设为行的 id,您需要选择:

"SELECT DISTINCT id, make, type, model FROM device ORDER BY make, type, model"

假设您的主索引称为 id ...

<option value="<?php echo $row['id']; ?>">

然后在您的下一页上,您将根据 make 的 post 值运行下一个查询...

 "SELECT id, make, type, model FROM device WHERE id = ".$_POST['makes']

当然,您需要对此进行消毒。您应该切换到 mysqli 或 PDO。

旁注 - 你应该打破 php 来编写 html。它只是更清洁。首先运行您的查询,这样您就不会死在选择框的中间。我不容忍使用 mysql_ 函数,但为了举例,这就是我的意思......

<?php
    $query1 = "SELECT DISTINCT id, make, type, model FROM device ORDER BY make, type, model";
    $result1 = mysql_query($query1)
       or die ("Couldn't execute query.");
?>
<form action='obtainaprice.php' method='POST'>
    <select name='makes' id='searchtext'>
    <?php while ($row1 = mysql_fetch_array($result1)): ?>
        <option value="<?php echo $row['id']; ?>"><?php echo $row1['make']; ?> <?php echo $row1['type']; ?> <?php echo $row1['model']; ?></option>
    <?php endwhile; ?>
    </select>
    <input type="image" id="buttons" alt="Search" img src="images/button.png">
</form>
于 2012-12-18T23:21:39.467 回答