Using PHP to populate a <select></select>?

前端 未结 7 1133
面向向阳花
面向向阳花 2021-01-11 23:50

I want to populate the above tag with values from database.

I have written php code up to t

相关标签:
7条回答
  • 2021-01-12 00:15

    I editied the last entry to this and it works perfectly. The only hassle I have now is once the user has submitted the form the dropdown goes blank... Does anyone know a simple solution

    echo '<select name="course" id="course" >';
                    while( $option = mysql_fetch_array($course_results)) {
    echo "<option    value=".htmlspecialchars($option['cid']).">".htmlspecialchars($option['cname'])."</option>";
    }
    echo "</select>";
    
    0 讨论(0)
  • 2021-01-12 00:19

    All the above answers will work, but are not proper and require extra work. You should not use echo to output to the screen and you don't have to. The below example assumes you are using objects containing data, but you get the idea.

    <select name="sales_person">
            <?php foreach ($sales_people as $sales_person){?>
                <option value="<?=$sales_person->first_name?> <?=$sales_person->last_name?>"><?=$sales_person->first_name?> <?=$sales_person->last_name?></option>
            <?php }?>
            </select>
    

    The point being you don't have to echo out the html

    0 讨论(0)
  • 2021-01-12 00:24

    What about something like this :

    echo '<select name="select">';
    while($row=mysql_fetch_array($result))
    {
        echo '<option value="' . htmlspecialchars($row['column_for_value']) . '">' 
            . htmlspecialchars($row['column_for_label']) 
            . '</option>';
    }
    echo '</select>';
    

    Of course, up to you to decide which items from $row should be used for the value and the text of each <option>


    Just make sure you are escaping the data that comes from your DB -- especially if it can contain HTML ; as you are outputting HTML, this can be done with htmlspecialchars or htmlentities.

    Note that those might take a couple of additionnal parameters that I didn't use in my example -- setting those can be useful, depending on the charset you're using.

    0 讨论(0)
  • 2021-01-12 00:28
    echo "<select>";
    while( $option = mysql_fetch_array($result)) {
      echo "<option>".htmlspecialchars($option['column'])."</option>";
    }
    echo "</select>";
    
    0 讨论(0)
  • 2021-01-12 00:29
    echo '<select>';
    while($row=mysql_fetch_array($result)) {
      echo '<option>'.$row['whatever_index'].'</option>';
    }
    echo '</select>';
    

    Replace 'whatever_index' with the column name you are fetching.

    0 讨论(0)
  • 2021-01-12 00:31
    
    $selected_value="selected_value";
    echo '<select name="select">';
    while($row=mysql_fetch_array($result))
    {
        if($selected_value==htmlspecialchars($row['column_for_value']))
        $selected=' selected';
        else
        $selected='';
        echo '<option value="'.htmlspecialchars($row['column_for_value']).'"'.$selected.'>'
        .htmlspecialchars($row['column_for_label']).
        '</option>';
    }
    echo '</select>';
    

    Some addition to Pascal MARTIN code, for auto selection of some predefined value

    0 讨论(0)
提交回复
热议问题