John Harbert
John Harbert

Reputation: 197

Keep Selection visible after Submit

How can I make the filtered selection still appear after the request.

So if I have options 1,2,and 3. When I select 2 and data shows I still want 2 to display signifying that the data is filtered through option 2.

echo "<form name='country_list' method='POST' action='http://opben.com/colombia/familias-de-carteras' >";
echo "<select name='Country' tabindex='1' >";

while($row = mysql_fetch_array($result))
 {
  echo " <option  value='". $row['Fund_Manager_Company_Code'] ."'>". $row['Fund_Manager_Company_Name'] ."</option>";
 }
echo "</select>";
echo "<input type='submit' value='Filter' />";
echo "</form>";

Upvotes: 2

Views: 558

Answers (4)

Steve
Steve

Reputation: 8640

After your submit, you need to catch the selection in your PHP code:

$selection = $_POST['Country'];

echo "<form name='country_list' method='POST' action='http://opben.com/colombia/familias-de-carteras' >";
echo "<select name='Country' tabindex='1' >";

while($row = mysql_fetch_array($result))
 {
  $selected = "";
  if ($row['Fund_Manager_Company_Code'] == $selection) {
    $selected = "selected";
  }
  echo " <option  value='". $row['Fund_Manager_Company_Code'] ."' ".$selected.">". $row['Fund_Manager_Company_Name'] ."</option>";
 }
echo "</select>";
echo "<input type='submit' value='Filter' />";
echo "</form>";

Upvotes: 0

user1452962
user1452962

Reputation: 386

something like

echo" <option  value='" . $row['Fund_Manager_Company_Code'] . "' " . ((isset($_POST['Country']) && $_POST['Country'] == $row['Fund_Manager_Company_Code'])
? 'selected="selected"' : '') . ">" . $row['Fund_Manager_Company_Name'] . "</option>";

Upvotes: 0

Philippe Boissonneault
Philippe Boissonneault

Reputation: 3949

You can do something like this :

    $country = isset($_POST['Country']) ? $_POST['Country'] : '';
    while($row = mysql_fetch_array($result))
     {
      echo " <option  value='". $row['Fund_Manager_Company_Code'] ."' ".(($row['Fund_Manager_Company_Code'] == $country) ? 'selected="selected"' : '').">". $row['Fund_Manager_Company_Name'] ."</option>";
     }

Upvotes: 3

user1646111
user1646111

Reputation:

What you need is to add selected attribute to option:

$Country = $_POST['Country'];
$sected = 'selected = "selected" ';
while($row = mysql_fetch_array($result))
 {
    echo " <option  ".($row['Fund_Manager_Company_Code'] == $Country? $selected : '')."value='". $row['Fund_Manager_Company_Code'] ."'>". $row['Fund_Manager_Company_Name'] ."</option>";
}

The one that the value selected and posted then will be selected...

Upvotes: 2

Related Questions