Jons Jons - 1 month ago 7
MySQL Question

Print selected value from dynamic dropdown php mysql

I have the below code where I can get dynamic value into drop down list from mysql db but i can't print selected value when i click on submit button.
can anyone help me urgntly ?

<?php
include("includes/config.inc.php");
$query = "SELECT * FROM category";
$result = mysql_query ($query);
echo "<select class='turnintodropdown' name='CategoryID' ><option value=''>All</option>";
while($r = mysql_fetch_array($result)) {
echo "<option value=".$r['CategoryID'].">".$r['CategoryName']."</option>";
}
echo "</select>";
if (isset($_POST['submit'])) {
$selected_val = $_POST['CategoryID']; // Storing Selected Value In Variable
echo "You have selected :" .$selected_val; // Displaying Selected Value
}
?>
<input type="submit" name="submit" value="Get Selected Values" />
</form>

Answer

If you want to preselect the selected value of the then you can use the following code. Also check your form method attrivute to see if it set to post (note that mysql_* functions are deprecated, it's better to use PDO using prepared statements).

while($r = mysql_fetch_array($result)) {
    if (!empty($_POST['CategoryID']) && $_POST['CategoryID'] == $r['CategoryID']) {
        $selected = 'selected="selected"';
    } else {
        $selected = '';
    }
    echo "<option ".$selected." value=".$r['CategoryID'].">".$r['CategoryName']."</option>"; 
}
Comments