2011-09-08 47 views
0

我试图让一个已经填充的下拉菜单改变焦点是它的选择,一旦我做了一个_REQUEST从另一个页面的ID - 该ID将关联到该项目的ID数据库。根据请求更改下拉菜单的焦点PHP

因此,这里的请求

$product_id_request=$_REQUEST["product_id"]; 

,并在下拉菜单代码:

$dropdown_sql="SELECT product_id, product_name, unit_price, unit_quantity, in_stock FROM products"; 
$dropdown_result=mysql_query($dropdown_sql); 

$options=""; 

while ($row=mysql_fetch_array($dropdown_result)) { 
    $id=$row["product_id"]; 
    $product_name=$row["product_name"]; 
    $unit_price=$row["unit_price"]; 
    $unit_quantity=$row["unit_quantity"]; 
    $in_stock=$row["in_stock"]; 
    $options.="<OPTION VALUE=\"$id\">$product_name - $unit_quantity"; 
} 
?> 

,并且下拉

<OPTION VALUE=0>Select a food 
<?php echo $options ?> 
</SELECT> 

回答

1

在你的while()循环,设置selected属性在你的OPTION标签上。例如:

$selected = ($id == $product_id_request) ? ' selected="selected"' : ''; 
$options .= "<OPTION VALUE=\"$id\"$selected>$product_name - $unit_quantity</OPTION>"; 

您还应关闭选项标记。

要检查ID的存在,编辑顶部,这样的:

$product_id_request = (isset($_REQUEST["product_id"])) ? $_REQUEST['product_id'] : 0; 

的默认值将是0,如果不供给它。

+0

这工作,谢谢你!唯一的问题是,当我刷新时,我得到这个“未定义的索引:product_id in ...”,因为它没有在第一个窗口中设置,我可以将它设置为默认的某个地方吗?如果我在顶部硬编码$ product_id_request = 0,它会打破页面:(我认为它会被替换 – beatbreaker

+0

是的,只需检查其顶部的存在 - 我编辑了答案来显示。 –