Search code examples
phpif-statementhtml-selectdefaultselected

How to set selected option in dropdown


This will echo dropdown value take from database that

<select name="PACKAGE_ID" id="PACKAGE_ID" ng-model="FormData.Phases" class="form-control" required>

<?php 
$result=mysqli_query($conn, "select * from unifi WHERE STATUS!='DELETE' ORDER BY PACKAGE_NAME ASC");
while ($row=mysqli_fetch_assoc($result)) {
?>
    <option name="UNIFI" value="<?php echo $row["PACKAGE_NAME"]; ?>">
        <?php echo $row[ "PACKAGE_NAME"]; ?>
    </option>
<?php } ?>

<?php $result=mysqli_query($conn, "select * from streamyx WHERE STATUS!='DELETE' ORDER BY PACKAGE_NAME ASC");
while ($row=mysqli_fetch_assoc($result)) {?>
    <option name="STREAMYX" value="<?php echo $row["PACKAGE_NAME"]; ?>">
        <?php echo $row[ "PACKAGE_NAME"]; ?>
    </option>
<?php } ?>


<?php $result=mysqli_query($conn, "select * from webe WHERE STATUS!='DELETE' ORDER BY PACKAGE_NAME ASC");
while ($row=mysqli_fetch_assoc($result)) {?>
    <option name="WEBE" value="<?php echo $row["PACKAGE_NAME"]; ?>">
        <?php echo $row[ "PACKAGE_NAME"]; ?>
    </option>
<?php } ?>

<?php $result=mysqli_query($conn, "select * from dome WHERE STATUS!='DELETE' ORDER BY PACKAGE_NAME ASC");
while ($row=mysqli_fetch_assoc($result)) {?>
    <option name="WEBE" value="<?php echo $row["PACKAGE_NAME"]; ?>">
        <?php echo $row[ "PACKAGE_NAME"]; ?>
    </option>
<?php } ?>

below is how im taking value from database based on ticket id

 $sql = "SELECT * FROM cusinfo WHERE TICKET_ID = '".$strid."' ";
 $query = mysqli_query($conn,$sql);
 $result=mysqli_fetch_array($query,MYSQLI_ASSOC);

I want to echo selected value for eg.<<< $result["PACKAGE_ID"]==$row[ "PACKAGE_NAME"] echo selected >>


Solution

  • Because you are using the $result variable many times with subsequent queries, you will need to preserve $result["PACKAGE_CATEGORY"] as a new variable, like this:

    $selected=$result["PACKAGE_CATEGORY"];
    

    You can write inline condition statements like this:

    echo "<option name=\"WEBE\" value=\"{$row["PACKAGE_NAME"]}\"",($row[ "PACKAGE_NAME"]==$selected?" selected":""),">{$row["PACKAGE_NAME"]}</option>";
    

    This means if the condition is true then selected will be echoed, if false an empty string will be echoed.

    The same technique on multiple lines would look like this:

    echo "<option name=\"WEBE\" value=\"{$row["PACKAGE_NAME"]}\"";
        echo $row["PACKAGE_NAME"]==$selected?" selected":"";
    echo ">{$row["PACKAGE_NAME"]}</option>";
    

    If you don't want to use an inline condition here is the standard syntax:

    echo "<option name=\"WEBE\" value=\"{$row["PACKAGE_NAME"]}\"";
        if($row["PACKAGE_NAME"]==$selected){
            echo " selected";
        }
    echo ">{$row["PACKAGE_NAME"]}</option>";