Een lege <option> bovenaan zetten bij beide.
Die wordt dan wel ontvangen via $_POST (in PHP), maar als $_POST['naam'] == 'niet_gekozen', dan zal $_POST['land'] dus wel iets moeten bevatten.
Dus zoiets in PHP:
<?php
// als beide zijn ingevuld, dan kijken we dus 2x
if(
( isset($_POST['naam']) AND $_POST['naam'] != 'niet_gekozen') )
AND
( isset($_POST['land']) AND $_POST['land'] != 'niet_gekozen') )
)
{
// beide zijn gekozen, dus dan wordt de IF-in de query zo:
$if = "WHERE land = '".$_POST['land']."' AND naam = '".$_POST['naam']."' ";
}
// niet beide ingevuld? Welke dan wel? Begin maar bij de naam
elseif ( isset($_POST['naam']) AND $_POST['naam'] != 'niet_gekozen') )
{
// enkel naam
$if = "WHERE naam = '".$_POST['naam']."' ";
}
// het was niet de naam, wel het land?
elseif ( isset($_POST['land']) AND $_POST['land'] != 'niet_gekozen') )
{
// enkel naam
$if = "WHERE land = '".$_POST['land']."' ";
}
// geen enkel geval, dus fout
else
{
$if = 'WHERE 1 = 0';
echo 'Fout gevonden. U heeft niets ingevuld.';
}
// meer van jouw script
?>
SELECT name, land FROM dingen WHERE name= '$_POST['name']' OR land= '$_POST['land']'
Maar wat als iemand dan wel 2 vinkjes plaats, 1 bij name en 1 bij land?
TS wil, als ik het goed begrijp, dat slechts 1 selectbox kan worden aangevinkt/query daarop is gebaseerd.
Edit: ik zie dat Eddy E al een oplossing(srichting) biedt.
Nu is het wel zo dat dit bij 2 mogelijkheden nog uit te schrijven is.
Bij 3 velden (3 <select>'s, bijvoorbeeld leeftijd oid) wordt dit veel langer. Dan zal je met arrays gaan werken en die aflopen.