Sky
Sky

Reputation: 29

php & mysql dropdown option selected issue

when i try to selected option from sql in dropdown list i get all options is selected :

$status1 = $row7["status"];

if($status1 == "draft") { $slc = "selected"; }
if($status1 == "ordered") { $slc = "selected"; } 
if($status1 == "shipped") { $slc = "selected";  }

echo "
  <select class=\"form-control input-sm\" name = \"o_status\">
    <option value = \"draft\" $slc>draft</option>
    <option value = \"ordered\" $slc>ordered</option>
    <option value = \"shipped\" $slc>shipped</option>
  </select>
";

my problem with output selected all options like that :

  <select class="form-control input-sm" name = "status">
<option value = "draft" selected>draft</option>
<option value = "ordered" selected>shipped</option>
<option value = "shipped" selected>shipped</option>

Upvotes: 0

Views: 683

Answers (3)

Mihai Matei
Mihai Matei

Reputation: 24276

You can define an array of statuses in order to set the select options:

<?php
    $statuses = array(
        'draft' => 'New draft',
        'ordered' => 'New order',
        'shipped' => 'New ship'
    );
?>

<select class="form-control input-sm" name="status">
<?php
    foreach ($statuses as $status => $name) {
?>
    <option value="<?php echo $status ?>" <?php echo $status === $row7['status'] ? 'selected="selected"' : '' ?>>
        <?php echo $name ?>
    </option>
<?php
    }
?>
</select>

Upvotes: 4

r00t-err0r
r00t-err0r

Reputation: 184

Maybe this helps:

<?php
switch ($row7["status"]) {
    case 'draft':
        $draft = "selected";
        $shipped = "";
        $ordered = "";
        break;
    case 'ordered':
        $ordered = "selected";
        $draft = "";
        $shipped = "";
        break;
    case 'shipped':
        $shipped = "selected";
        $draft = "";
        $ordered = "";
        break;
    default:
        $draft = "";
        $shipped = "";
        $ordered = "";
        break;
}
echo "<select class=\"form-control input-sm\" name = \"o_status\">
    <option value = \"draft\" $draft>draft</option>
    <option value = \"ordered\" $ordered>ordered</option>
    <option value = \"shipped\" $shipped>shipped</option>
  </select>";
?>

Upvotes: 1

Therichpost
Therichpost

Reputation: 1815

Please check now.

Hope this helps you:

$status1 = $row7["status"];

if($status1 == "draft") { $draft = "selected"; }
if($status1 == "ordered") { $ordered = "selected"; } 
if($status1 == "shipped") { $shipped = "selected";  }

  echo "
  <select class=\"form-control input-sm\" name = \"o_status\">
 <option value = \"draft\" $draft>draft</option>
 <option value = \"ordered\" $ordered>ordered</option>
 <option value = \"shipped\" $shipped>shipped</option>
 </select>
  ";

Upvotes: 4

Related Questions