2

我有 3 个下拉框,它们从上面的下拉框填充每个下拉框,但在第三个下拉框我希望它带回我选择的值。代码如下

<tr>
<td width="119">Category</td>

<td width="371">
   <select name="cat_id" id="cat_id" onChange="showCompany(this.value);">
   <option value="">--Select--</option>
   <?php
    $sql="select * from category";
   $sql_row=mysql_query($sql);
   while($sql_res=mysql_fetch_assoc($sql_row))
   {
   ?>
   <option value="<?php echo $sql_res["id"]; ?>" <?php if($sql_res["id"]   ==$_REQUEST     ["cat_id"]) { echo "Selected"; } ?>><?php echo $sql_res["category_name"]; ?  ></option>
    <?php
    }
   ?>
   </select>
   </td>
 </tr>

 <tr>
<td>Company</td>
<td id="td_company">
   <select name="company_id" id="company_id">;
   <option value="">--Select--</option>
   <?php
   $sql="select * from company where cat_id='$_REQUEST[cat_id]'";
   $sql_row=mysql_query($sql);
   while($sql_res=mysql_fetch_assoc($sql_row))
   {
   ?>
   <option value="<?php echo $sql_res["id"]; ?>"><?php echo $sql_res["company_name"]; ?></option>
   <?php
   }
   ?>
 </select>
   </td>
 </tr>
 <tr>

<td>Item</td>
<td id="td_item">
   <select name="item_id" id="item_id">
   <option value="">--Select--</option>
   <?php
   $sql="select * from item where comp_id='$_REQUEST[cat_id]'";
   $sql_row=mysql_query($sql);
   while($sql_res=mysql_fetch_assoc($sql_row))
   {
   ?>
   <option value="<?php echo $sql_res["id"]; ?>"><?php echo $sql_res["item_name"]; ?></option>
   <?php
   }
   ?>
</select>
   </td>
 </tr>
 <tr>
<td>Price</td>
<td id="td_item">
   <?php
   $sql="select unit_cost from item where comp_id='$_REQUEST[cat_id]'";
   $sql_row=mysql_query($sql);
   while($sql_res=mysql_fetch_assoc($sql_row))
   {
   echo "<td>" . "&pound" . $sql_res['unit_cost'] . "</td>";
   }
   ?>

   </td>
 </tr>

 <tr>
 </tr>
</table>
</form>

所以基本上我希望它从我选择的选项中恢复价格,目前它恢复了所有价格。

例如,第一个下拉列表我选择 cellings 然后公司下拉列表我选择 Access Panels 然后第三个下拉列表它们是 3 个项目(Arm Strong、Track 和 Screw),它带回了所有 3 个价格,我希望能够选择一个且仅带回那个价格。有任何想法吗?

4

1 回答 1

0

首先,您不应该使用 mysql_* 函数,它们已被弃用。查看 mysqli 或 PDO。其次,您的代码中有一个漏洞,您将 $_REQUEST 直接插入到您的 SQL 中。这就是所谓的 SQL 注入。您可能应该阅读它。

考虑到这一切,问题是您的查询试图选择公司 id = 类别 id 的所有项目。这是您的查询:

$sql="select * from item where comp_id='$_REQUEST[cat_id]'";

请注意comp_id='$_REQUEST[cat_id]'它应该是类似的东西comp_id = $_REQUEST[comp_id]'吗?

于 2013-05-29T21:18:37.530 回答