【问题标题】:selected value get from db into dropdown select box option using php mysql error使用 php mysql 错误从 db 中获取选定值到下拉选择框选项
【发布时间】:2021-10-08 15:55:12
【问题描述】:

我需要将 db 中的选定值放入选择框。请告诉我该怎么做。这是代码。 注意:“选项”值取决于类别。

<?php 
  $sql = "select * from mine where username = '$user' ";
  $res = mysql_query($sql);
  while($list = mysql_fetch_assoc($res)){
    $category = $list['category'];
    $username = $list['username'];
    $options = $list['options'];
?>

<input type="text" name="category" value="<?php echo '$category' ?>" readonly="readonly" />
<select name="course">
   <option value="0">Please Select Option</option>
   <option value="PHP">PHP</option>
   <option value="ASP">ASP</option>
</select>

<?php 
  }
?>

【问题讨论】:

  • 你的预期输出是什么?
  • 请把你的问题解释清楚
  • 能否请您也发布您的表格和虚拟数据?
  • 这里我需要打印类别(用户提交的类别以及用户在发布表单时提交的选项选择框)。这个表格是编辑表格,用户可以看到他选择了哪个类别和选项。如果用户想要更改选项,他可以在编辑表单中进行。
  • 我试过了 但它只打印选定的值而不是我需要的因为我想在选择框中显示用户选项值,第一个和第二个保留选项。但我不知道该怎么做。

标签: php mysql


【解决方案1】:

我认为您正在寻找以下代码更改:

<select name="course">
<option value="0">Please Select Option</option>
<option value="PHP" <?php if($options=="PHP") echo 'selected="selected"'; ?> >PHP</option>
<option value="ASP" <?php if($options=="ASP") echo 'selected="selected"'; ?> >ASP</option>
</select>

【讨论】:

  • @BolemVeeru 如果代码中的 $options 包含课程下拉菜单中的课程之一,它应该可以工作。您可以在下拉菜单之前打印并检查 $options 的值吗
  • select标签传递到php变量像$role= '&lt;select class="form-control" name="role" id="role"&gt; &lt;option value=""&gt;Select&lt;/option&gt; &lt;option value="a" &lt;?php if($admin[0]-&gt;role=="Admin") echo selected="selected"; ?&gt;&gt;Admin&lt;/option&gt; &lt;/select&gt;';时它是如何完成的
  • 只需回显“已选择”(注意开头的空格)就可以了。
  • 如何在for循环中实现这一点?如果您的数据来自数据库
【解决方案2】:

我能想到的最简单的方法如下:

<?php

$selection = array('PHP', 'ASP');
echo '<select>
      <option value="0">Please Select Option</option>';

foreach ($selection as $selection) {
    $selected = ($options == $selection) ? "selected" : "";
    echo '<option '.$selected.' value="'.$selection.'">'.$selection.'</option>';
}

echo '</select>';

代码基本上将所有选项放在一个数组中,该数组在 foreach 循环中被调用。循环检查您的 $options 变量是否与它所在的当前选择匹配,如果匹配,则 $selected 将 = 选中,如果不匹配,则将其设置为空白。最后返回选项标签,其中包含数组中的选择,如果该特定选择等于您的 $options 变量,则将其设置为选定选项。

【讨论】:

    【解决方案3】:

    例如..请下次使用 mysqli(),因为 mysql() 已被弃用。

    <?php
    $select="select * from tbl_assign where id='".$_GET['uid']."'"; 
    $q=mysql_query($select) or die($select);
    $row=mysql_fetch_array($q);
    ?>
    
    <select name="sclient" id="sclient" class="reginput"/>
    <option value="">Select Client</option>
    <?php $s="select * from tbl_new_user where type='client'";
    $q=mysql_query($s) or die($s);
    while($rw=mysql_fetch_array($q))
    { ?>
    <option value="<?php echo $rw['login_name']; ?>"<?php if($row['clientname']==$rw['login_name']) echo 'selected="selected"'; ?>><?php echo $rw['login_name']; ?></option>
    <?php } ?>
    </select>
    

    【讨论】:

      【解决方案4】:

      从下拉列表中选择值。

      <select class="form-control" name="category" id="sel1">
          <?php foreach($data as $key =>$value) { ?>                         
              <option value="<?php echo $data[$key]->name; ?>"<?php if($id_name[0]->p_name==$data[$key]->name) echo 'selected="selected"'; ?>><?php echo $data[$key]->name; ?></option>
          <?php } ?>
      </select> 
      

      【讨论】:

        【解决方案5】:

        只需添加一个额外的隐藏选项并从数据库中打印选定的值

        <option value="<?php echo $options;?>" hidden><?php echo $options;?></option>
        <option value="PHP">PHP</option>
        <option value="ASP">ASP</option>
        

        【讨论】:

          【解决方案6】:

          最简单的解决方案

          它会在您的选项中增加一个额外的选项,但您的问题将得到解决。

          <?php 
              if ($editing == Yes) {
                  echo "<option value=\".$MyValue.\" SELECTED>".$MyValue."</option>";
              }
          ?>
          

          【讨论】:

            【解决方案7】:
            $option = $result['semester'];
            <option >Select</option>
                                <option value="1st" <?php if($option == "1st") echo 'selected = "selected"'; ?>>1st</option>
                                <option value="2nd" <?php if($option == "2nd") echo 'selected = "selected"'; ?>>2nd</option>
                                <option value="3rd" <?php if($option == "3rd") echo 'selected = "selected"'; ?>>3rd</option>
                                <option value="4th" <?php if($option == "4th") echo 'selected = "selected"'; ?>>4th</option>
                                <option value="5th" <?php if($option == "5th") echo 'selected = "selected"'; ?>>5th</option>
                                <option value="6th" <?php if($option == "6th") echo 'selected = "selected"'; ?>>6th</option>
                                <option value="7th" <?php if($option == "7th") echo 'selected = "selected"'; ?>>7th</option>
                                <option value="8th" <?php if($option == "8th") echo 'selected = "selected"'; ?>>8th</option>
                            </select>
            

            【讨论】:

              【解决方案8】:

              最好的代码和简单的

              <select id="example-getting-started" multiple="multiple" name="category">
              
                  <?php
                  $query = "select * from mine";
                  $results = mysql_query($query);
              
                  while ($rows = mysql_fetch_assoc(@$results)){ 
                  ?>
                  <option value="<?php echo $rows['category'];?>"><?php echo $rows['category'];?></option>
              
                  <?php
                  } 
                  ?>
              </select>
              

              【讨论】:

                【解决方案9】:

                你也可以这样做......

                <?php  $countryname = $all_meta_for_user['country']; ?>
                
                <select id="mycountry"  name="country" class="user">
                
                    <?php $myrows = $wpdb->get_results( "SELECT * FROM wp_countries order by country_name" );
                    foreach($myrows as $rows){
                        if( $countryname == $rows->id ){ 
                            echo "<option selected = 'selected' value='".$rows->id."'>".$rows->country_name."</option>";
                        } else{ 
                            echo "<option value='".$rows->id."'>".$rows->country_name."</option>";
                        }
                    }
                    ?>
                </select>
                

                【讨论】:

                  【解决方案10】:

                  答案很简单。 当你从下拉列表中传递值时。

                  就像其他一样使用。

                  例如:

                  foreach($result as $row) {                      
                     $GLOBALS['output'] .='<option value="'.$row["dropdownid"].'"'. 
                     ($GLOBALS['passselectedvalueid']==$row["dropwdownid"] ? ' Selected' : '').' 
                     >'.$row['valueetc'].'</option>';
                  }
                  

                  【讨论】:

                    【解决方案11】:
                    <?php 
                      $sql = "select * from mine where username = '$user' ";
                      $res = mysql_query($sql);
                      while($list = mysql_fetch_assoc($res)){
                        $category = $list['category'];
                        $username = $list['username'];
                        $options = $list['options'];
                    ?>
                    
                    <input type="text" name="category" value="<?php echo '$category' ?>" readonly="readonly" />
                    <select name="course">
                    <option value="0">Please Select Option</option>
                    <option value="PHP" <?php echo $options == 'PHP' ? 'selected' : ''; ?> >PHP</option>
                    <option value="ASP" <?php echo $options == 'ASP' ? 'selected' : ''; ?> >ASP</option>
                    </select>
                    
                    <?php 
                      }
                    ?>
                    

                    【讨论】:

                    • 感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation 将通过展示为什么这是解决问题的好方法,并使其对有其他类似问题的未来读者更有用,从而大大提高其长期价值。请edit您的回答添加一些解释,包括您所做的假设。
                    【解决方案12】:

                    使用 PDO

                    <?php
                    $username = "root";
                    $password = "";
                    $db = "db_name";
                    
                    $dns = "mysql:host=localhost;dbname=$db;charset=utf8mb4";
                    $conn = new PDO($dns,$username, $password);
                    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                    
                    $sql = "select * from mine where username = ? ";
                    
                    $stmt1 = $conn->prepare($sql);
                    $stmt1->execute(array($_POST['user']));
                    $all = $stmt1->fetchAll(); ?>
                    
                    <div class="controls">
                        <select  data-rel="chosen"  name="degree_id" id="selectError">
                            <?php 
                            foreach($all as $nt) { 
                                echo "<option value =$nt[id]>$nt[name]</option>";
                            }
                            ?>
                        </select>
                    </div>
                    

                    【讨论】:

                      【解决方案13】:

                      我正在使用eval()这样的PHP函数:

                      我的 PHP 代码:

                      $selOps1 = $selOps2 = $selOps3 = '';
                      eval('$selOps'. $dbRow["DBitem"] . ' = "selected";');
                      

                      然后在我的选择框中我这样使用它:

                      <select>
                         <option <?=$selOps1?> value="1">big</option>
                         <option <?=$selOps2?> value="2">Middle</option>
                         <option <?=$selOps3?> value="3">Small</option>
                      </select>
                      

                      【讨论】:

                        【解决方案14】:

                        将 db 中的值放入变量中,并像下面的代码示例一样检查

                        <select class="form-control" name="currency_selling" required >
                             <option value="">Select Currency</option>
                             <option value="pkr" <?=$selected_currency == 'pkr' ? ' selected="selected"' : '';?> >PKR</option>
                          <option value="dollar"  <?=$selected_currency == 'dollar' ? ' selected="selected"' : '';?> >USD</option>
                          <option value="pounds"  <?=$selected_currency == 'pounds' ? ' selected="selected"' : '';?> >POUNDS</option>
                          <option value="dirham"  <?=$selected_currency == 'dirham' ? ' selected="selected"' : '';?> >DRHM</option>
                          </select>
                        

                        【讨论】:

                          【解决方案15】:

                          这可能会对你有所帮助。

                          ?php 
                          $sql = "select * from mine where username = '$user' ";
                          $res = mysql_query($sql);
                          while($list = mysql_fetch_assoc($res))
                          {
                          $category = $list['category'];
                          $username = $list['username'];
                          $options = $list['options'];
                          ?>
                          <input type="text" name="category" value="<?php echo '$category' ?>" readonly="readonly" />
                          <select name="course">
                          <option value="0">Please Select Option</option>
                          // Assuming $list['options'] is a coma seperated options string 
                          $arr=explode(",",$list['options']);
                          <?php foreach ($arr as $value) { ?>
                             <option value="<?php echo $value; ?>"><?php echo $value; ?></option>
                          <?php } >
                          </select>
                          
                          <?php 
                          }
                          ?>
                          

                          【讨论】:

                            猜你喜欢
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2013-12-15
                            • 2013-09-06
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            相关资源
                            最近更新 更多