Jump to content

How to retain select box value after submit


samuel_lopez

Recommended Posts

Hi to all. How can I retain select box value after submit
this is my current code
 

<?php
$query
= $mysqli->query("Select Proj_ID as id, PROJECT_NAME as project from tblproject"); ?>
<select name="project" class="required" id="selproject">
<option disabled selected>Select Project</option>
<?php while($option = $query->fetch_object()){ ?>
<option value="<?php echo $option->id; ?>"><?php echo $option->project; ?></option>
<?php } ?>
</select>
 

Thank you

Link to comment
Share on other sites

In any case: While you iterate over your rows, you need to compare $option->id with the previously submitted value, be it $_POST['project'] or $_GET['project']. If the current option ID matches the submitted value, you emit a selected attribute.

 

Of course you also need to remove the dummy option in case there's a preselected option, so you have to iterate over the rows before you assemble the HTML markup for the select element.

Link to comment
Share on other sites

I prefer to create a function to generate my select fields. I would also highly suggest you follow a standard of putting your logic (i.e. PHP code) at the top of the document and only output the generated content within the HTML at the bottom of the page. Here is a quick example

<?php
 
//Function to create select options
function createSelectOptions($optionList, $selectedValue=NULL)
{
    $optionsHTML = '';
    foreach($optionList as $value => $label)
    {
        $selected = ($value == $selectedValue) ? " selected = 'selected'" : '';
        $optionsHTML .= "option value=\"{$value}\"{$selected}>{$label}</option>\n";
    }
    return $optionsHTML;
}
 
//Get previously selected value (if passed)
$projectSelected = isset($_POST['project']) ? $_POST['project'] : NULL;
 
//Query list of available values
$projectList = array();
$query = "Select Proj_ID as value, PROJECT_NAME as label from tblproject";
$result = $mysqli->query($query);
while($option = $result->fetch_object())
{
    $projectList[$option->value] = $option->label;
}
 
//Create the options for the project select list
$projectOptions = createSelectOptions($projectList, $projectSelected);
 
?>
<html>
<head></head>
<body>
 
<select name="project" class="required" id="selproject">
    <?php echo $projectOptions; ?>
</select>
 
</body>
</html>
Edited by Psycho
  • Like 1
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.