【问题标题】:How to print-down list with selected value from database?如何从数据库中打印具有选定值的列表?
【发布时间】:2011-08-17 21:54:24
【问题描述】:

我正在尝试使用数据库中的选定值打印下拉列表。 result3 - 我从数据库中选择与 $id2 位于同一行的“公司名称”值。我需要选择该值。 result2 - 我选择所有公司的名称。

result3 = mysql_query("SELECT company.company_id,customer.company_id, customer.customer_id, company.name 
FROM company INNER JOIN customer ON customer.company_id=company.company_id  WHERE customer_id='$id2'") or die(mysql_error());
$row3 = mysql_fetch_assoc($result3);
$result2 = mysql_query("SELECT company_id, name FROM company") or die(mysql_error());
  if(mysql_num_rows($result2) > 0)
  {
    while($row2 = mysql_fetch_assoc($result2))
    {
    echo'<option selected="'.$row3['name'].'" value="'.$row2['company_id'].'">'.$row2['name'].'</option>';
    }
  }

我的代码的问题是每次选择的值都是列表中的最后一个。

我查看了我的源代码,一切正常。

这是源代码,这是我需要的。 (但我的代码将选定的值返回为 'Facebook' - 列表中的最后一个)

<select name="operation">
<option selected="Google" value="1">Microsoft</option>
<option selected="Google" value="2">IBM</option>
<option selected="Google" value="3">Google</option>
<option selected="Google" value="4">Lexy</option>
<option selected="Google" value="5">Facebook</option>   
</select>

【问题讨论】:

    标签: php mysql html forms select


    【解决方案1】:

    选择的属性应该只应用于列表中的单个选项。

    <option selected="selected">
    

    应该导致选择该单个选项。

    所以在你的 while 循环中,你需要一个类似这样的 if 语句:

     while($row2 = mysql_fetch_assoc($result2))
     {
         if($row2['name'] == $row3['name']){
              $selected = "selected='selected'";
         }else{
              $selected = "";
         }
         echo'<option ' . $selected . ' value="'.$row2['company_id'].'">'.$row2['name'].'</option>';
    }
    

    这样只会选择您想要选择的值。

    【讨论】:

      猜你喜欢
      • 2020-02-11
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多