Hoi

Ik heb een zoekmenu met checkboxes, die na het verzenden geselecteerd blijven zodat de gebruiker weet waar de resultaten op gebaseerd zijn.
Nu moet er ook 1 selectbox (dropdown) in komen die meegaat in de zoekopdracht. In eerste instantie zoekt het de juiste gegevens, maar wanneer het resultaat er is staan alleen nog de checkboxe corect geselecteerd maar is de selectbox weer terug naar default.

De selectbox is overigens niet dymamisch.

  <?php echo"&lt;!-- zoektest --&gt;";?>
            <form name="magazineForm" method="post" action="advanced.php">
                <h3>testform</h3>
              <select name="search_country">
                <option value="Netherlands">nederland</option>
                <option value="Germany">duitsland</option>
              </select>
                <input type="checkbox" name=sauna value=y<?php if($sauna == "y"){echo" CHECKED";}?>> sauna<br>
                <input type="checkbox" name=pool value=y<?php if($pool == "y"){echo" CHECKED";}?>> pool<br>
                <input type="checkbox" name=tennis value=y<?php if($tennis == "y"){echo" CHECKED";}?>> tennis<br>
                <input type="checkbox" name=cablesat value=y<?php if($cablesat == "y"){echo" CHECKED";}?>> cablesat<br>
                <input type="submit" name=s1 value="Submit">
            </form>
            <br>
            <?php echo"&lt;!-- zoektest --&gt;";?>


Hoe krijg ik het nu zo dat de selectbox geselecteerd blijft?

Alvast bedankt!
bump :)
Probeer ipv CHECKED eens SELECTED...
[edit]
En maak je code eens valid...
YPM schreef op 31.03.2007 13:32
Probeer ipv CHECKED eens SELECTED...


Checked is zowieso goed voor een Checkbox..

Probeer eens checked="checked"
Hij heeft een selectbox en checkboxen in dat form staan, vandaar denk ik die checked/selected fout.

Maar in ieder geval, doe het zo met je selectbox:


 <select name="search_country">
      <option value="Netherlands">nederland</option>
      <option value="Germany">duitsland</option>
 </select>



Wordt:


<?php
$options = array('nederland' => 'Netherlands', 'duitsland' => 'Germany');
?>
 <select name="search_country">
<?php 
foreach ( $options as $key => $value)
{
   $selected = '';
   if(isset($_POST['search_country']) && $_POST['search_country'] == $key)
   {
        $selected = ' selected ';
   }
   echo '<option value="' . $key . '" ' . $selected .'>' . $value . '</option>';
}
?>
</select>



Heb optie en waarde omgedraaid, maar je snapt het idee..

Valid HTML : selected
Valid XHTML : selected="selected"

Hetzelfde geld voor checked

Ikzelf gebruik hier overigens gewoon een form class voor, 1 keer maken, nooit meer nadenken ;-)
bedankt :)

maar de bovenstaande code bewaarde niet de waarde nadat een submit was gedaan, helaas.

Heb het nu als volgt opgelost, het select gedeelte is geworden:


<?php $_REQUEST['search_country'] = !isset($_REQUEST['search_country'])?"":$_REQUEST['search_country'];?>
<?php //$search_country = !isset($_REQUEST['search_country'])?NULL:$_REQUEST['search_country'];?>
<select name='search_country'>
<option value="<?php echo $_REQUEST['search_country'];?>" SELECTED><?php echo $_REQUEST['search_country'];?></option>
<option value=''>All countries</option>
<option value="Netherlands">nederland</option>
<option value="Germany">duitsland</option>
</select>


werkt prima, ook na submit .
Thanks!

JP
Ik weet zeker dat ie wel werkt, je hebt waarschijnlijk de waarde en de tekst omgedraaid of iets dergelijks, heb um net getest hier.

Of gebruik je GET om het formulier te submitten, dan moet je $_POST vervangen door $_GET in mijn script. Omdat je $_REQUEST gebruikt zal dit waarschijnlijk wel het geval zijn, die kan je ook gebruiken..

Nu is het minder mooi omdat het gekozen veld meerdere keren voorkomt.
@Baarr

Je hebt helemaal gelijk! $_GET doet het wel (form method is evenwel POST!?), maar het blijft nu mooi staan!

In het scriptje wat ik had gemaakt wordt in de selectbox ook de nieuw gevonden waarde bewaard, en dat was niet mooi.

Superbedankt!

Reageren