php代码如下:
<!-- 类别选择框 -->
<form method ="get" action="/show_by_Price.php" target="showframe">
<select name="categories" onchange="submit()">
<option value="pleaseChoose" selected="selected">Please Choose</option>
<option value="Electronic">Electronic</option>
<option value="Book" >Book</option>
<option value="Fashion">Fashion</option>
</select>
</form>
<b font='Times New Roman'>Price:</b> 
<br>
<!-- 产品价格选择框 -->
<form method ="get" action="/show_by_Price.php" target="showframe">
<select name="price" onchange="submit()">
<option value="Please_Choose" selected="selected">Please Choose</option>
<option value="hight">more than 2000</option>
<option value="middle" >1000~2000</option>
<option value="low">less than 1000</option>
</select>
</form>show_by_Price.php关键处理代码如下:
if ($_GET[categories]=='pleaseChoose'){
if ($_GET[price]=='Please_Choose'){
//$result_price=null;
echo Please_choose ;
}
else {

if ($_GET[price]=='hight'){
echo p_H ;
$result_price = mysql_query("SELECT * FROM Product where Price>2000");
}
elseif ($_GET[price]=='middle'){
echo p_M ;
$result_price = mysql_query("SELECT * FROM Product where Price<2000 && Price>1000");
}
else{
echo p_L ;
 $result_price = mysql_query("SELECT * FROM Product where Price<1000");
}
}
}
else
{
if ($_GET[price]=='Please_Choose'){
echo C_P ;
$result_price = mysql_query("SELECT * FROM Product where Category='$_GET[categories]'");
}
else{

if ($_GET[price]=='hight'){echo C_H;
$result_price = mysql_query("SELECT * FROM Product where Price>2000 and Category='$_GET[categories]'");
}
elseif ($_GET[price]=='middle'){echo C_M;
$result_price = mysql_query("SELECT * FROM Product where (Price<2000 && Price>1000 )and Category='$_GET[categories]'");
}
else{echo C_L;
 $result_price = mysql_query("SELECT * FROM Product where Price<1000 and Category='$_GET[categories]'");
}
}
}
为什么两个框都选择的是Please Choose的时候 ,执行的是echo p_L ;
 $result_price = mysql_query("SELECT * FROM Product where Price<1000");
而不是echo Please_choose ;
求高手指点

解决方案 »

  1.   

    print_r($_GET);  //看是什么结果 我想知道你为什么不把两个select放入一个form中? 
      

  2.   


    为什么只要有任何一个框 选择的是 Please Choose 就会出错?
      

  3.   

    print_r($_GET); //这样就知道了因为你是两个form ,只要其中一个选择就会提交。而接收页面只能接收一个值。
      

  4.   


    其中一个选择了就会提交,这我知道,但是比如说 我选了category 是Book,Price不做选择,那为什么$_GET[price]会等于low呢?
      

  5.   

    这是不可能的吧。 $_GET[price] 都不存在,怎么会等于low呢? 
      

  6.   


    出来的结果就是等于$_GET[price] 为low !
      

  7.   

    当一个表单提交时,另一个表单的值是未设置状态,而不是你想的等于pleaseChoose,所以,你的后台逻辑判断有误,你再好好看看。
      

  8.   

    都跟你说啦。放入一个form当中去,事情就好办多了。
      

  9.   

    我知道了,多谢!
    不好意思啊,刚开始学的php,
    之前一直没弄明白,您说的是什么意思,刚刚试了下,非常感谢,
    这个问题困扰我多时了!