PHP 下拉选中

标签 php mysql drop-down-menu return-value

我有 3 个下拉框,它们填充了上面那个下拉框的每个下拉框,但在第 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 个价格,我希望能够选择一个并且只带回那个价格。有什么想法吗?

最佳答案

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

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

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

请注意 comp_id='$_REQUEST[cat_id]' 应该改为类似 comp_id = $_REQUEST[comp_id]' 吗?

关于PHP 下拉选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16668102/

相关文章:

用于在 'OPTION SQL_SELECT_LIMIT=10' 附近使用正确语法的 MySQL 服务器版本

php - 如何使用 PHP Web 服务从 MySQL 将值显示到 Android 客户端

php - 如何在 WordPress 中进行子查询

php - html5 php 视频上传和显示 - 如何为特定上传添加评论

php - MYSQL & PHP 将 LAST_INSERT_ID() 保存为局部变量

PHP base64编码不同的结果

html - 如何控制在 css 下拉菜单中显示子菜单?

c# - 未调用 ASP.NET 组合 selectedIndexChanged 事件

html - 使用图像作为菜单 : animation inside div

Php:检查电子邮件内容是否是垃圾邮件