我有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>" . "£" . $sql_res['unit_cost'] . "</td>";
}
?>
</td>
</tr>
<tr>
</tr>
</table>
</form>
所以基本上我希望它从我选择的选项中带回价格,此时它会带回所有价格。
e.g。首先下拉我选择小区然后公司下拉我选择访问面板然后第3下拉他们是3项(手臂强,轨道和螺丝)它带回所有3个价格,我想能够选择一个,只带来回到那个价格。任何想法?
答案 0 :(得分: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]'
吗?