Formulier verwerken
Ik heb een vraag betreft verwerken van een formulier. Ik heb een soort van filterfunctie gemaakt met drie opties. filteren op vestiging filteren op plaats en filteren op opstelling.
Ik maak gebruik van een formulier met select en <option>. Ik heb het zo gemaakt, dat wanneer je bijvoorbeeld bij vestiging rotterdam kiest, de pagina de slq uitvoert (select * from vestigingen WHERE vestiging_naam = 'rotterdam')
Doordat mijn eerste option <option>Maak uw keuze</option> is maakt hij van bovenstaande sql het volgende: (select * from vestigingen WHERE vestiging_naam ='rotterdam' AND opstelling = '' AND prijs_cat = '' )
Door bovenstaande vindt hij dus niets.. Hoe kan ik dit oplossen. Dus dat wanneer je op submit klikt hij alleen datgeen post wat je hebt aangeklikt. En dus niet de standaard tekst die er al staat "maak uw keuze"..
Bedankt alvast voor de oplossing
Toevoeging op 19/07/2011 09:28:43:
PS: in chrome heb ik het op kunnen lossen door op de eerste option een disable te zetten.. Hierdoor stuurt hij ook geen leeg veld mee.. Alleen in IE werkt deze functie niet:(
Gewijzigd op 19/07/2011 09:23:59 door Ed van Papenrecht
Ik denk dat ik zou kiezen voor het opbouwen van de query o.b.v. if-statements. Als vestiging ingevuld, dan moet die dat toevoegen aan de query, etc.
Zou daarnaast geen gebruik maken van *, maar selecteer het veld/de velden die je nodig hebt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
$query = "SELECT vestigingen.vestiging_id, vestigingen.Plaats, naam, foto, prijs_org, prijs_start, uitverkoop_id FROM uitverkoop INNER JOIN vestigingen ON uitverkoop.vestiging_id=vestigingen.vestiging_id";
if ($_SERVER['REQUEST_METHOD'] == "POST")
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if(isset($_POST['vestiging']) or isset($_POST['opstelling']) or isset($_POST['prijs']))
{
if(isset($_POST['vestiging']) and isset($_POST['opstelling']) and isset($_POST['prijs']))
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'
AND prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'
AND opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'";
}
elseif(isset($_POST['vestiging']) and isset($_POST['opstelling']) and empty($_POST['prijs']))
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'
AND opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'";
}
elseif(isset($_POST['vestiging']) and isset($_POST['prijs']))
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'
AND prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'";
}
elseif(isset($_POST['opstelling']) and isset($_POST['prijs']))
{
$query .= " WHERE opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'
AND prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'";
}
elseif(isset($_POST['vestiging']))
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'";
}
elseif(isset($_POST['prijs']))
{
$query .= " WHERE prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'";
}
else
{
$query .= " WHERE opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'";
}
}
}
$result= mysql_query($query);?>
$query = "SELECT vestigingen.vestiging_id, vestigingen.Plaats, naam, foto, prijs_org, prijs_start, uitverkoop_id FROM uitverkoop INNER JOIN vestigingen ON uitverkoop.vestiging_id=vestigingen.vestiging_id";
if ($_SERVER['REQUEST_METHOD'] == "POST")
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if(isset($_POST['vestiging']) or isset($_POST['opstelling']) or isset($_POST['prijs']))
{
if(isset($_POST['vestiging']) and isset($_POST['opstelling']) and isset($_POST['prijs']))
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'
AND prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'
AND opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'";
}
elseif(isset($_POST['vestiging']) and isset($_POST['opstelling']) and empty($_POST['prijs']))
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'
AND opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'";
}
elseif(isset($_POST['vestiging']) and isset($_POST['prijs']))
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'
AND prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'";
}
elseif(isset($_POST['opstelling']) and isset($_POST['prijs']))
{
$query .= " WHERE opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'
AND prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'";
}
elseif(isset($_POST['vestiging']))
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'";
}
elseif(isset($_POST['prijs']))
{
$query .= " WHERE prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'";
}
else
{
$query .= " WHERE opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'";
}
}
}
$result= mysql_query($query);?>
Dat is de query die ik gebruik..
Voor het formulier gebruik ik onderstaande code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<form action="<?php $_SERVER['PHP_SELF']?>" method="post" style="margin-bottom:20px;">
<fieldset><legend>Verfijnd zoeken</legend>
<table width="100%" style="margin-bottom:20px;">
<tr>
<td>Filter op :</td>
<td>Filter op prijs:</td>
<td>Filter op opstelling:</td>
</tr>
<tr>
<td><select name="vestiging" value="" /><option label="Maak uw keuze" disabled="disabled"></option><?php
$query_vestigingen = ("SELECT plaats, vestiging_id FROM `vestigingen` ORDER BY plaats ASC ");
$result_vestigingen = mysql_query($query_vestigingen) or die ("FOUT: " .mysql_error());
while (list ($plaats, $id) = mysql_fetch_row($result_vestigingen) ){
echo ("<option value='".$plaats."'>".$plaats."</option>");}
?></td>
<td><select name="prijs"/><option label="Maak uw keuze" disabled="disabled"></option><option value="0-2000">0 - 2000</option> <option value="2000-5000">2000 - 5000</option><option value="+5000">+5000</option></td>
<td><select name="opstelling"/><option label="Maak uw keuze" disabled="disabled"></option><option value="recht">recht</option> <option value="L-vorm">L-vorm</option><option value="U-vorm">U-vorm</option><option value="Eiland">Eiland</option><option value="Wand">Wand</option></td>
</tr>
<tr>
<td colspan="3" style="padding-top:10px; padding-right:20px; text-align:right"><input class="button" name="verstuur" value="Zoeken" type="submit" id="verstuur" /></td>
</tr>
</table>
</fieldset>
</form>
<fieldset><legend>Verfijnd zoeken</legend>
<table width="100%" style="margin-bottom:20px;">
<tr>
<td>Filter op :</td>
<td>Filter op prijs:</td>
<td>Filter op opstelling:</td>
</tr>
<tr>
<td><select name="vestiging" value="" /><option label="Maak uw keuze" disabled="disabled"></option><?php
$query_vestigingen = ("SELECT plaats, vestiging_id FROM `vestigingen` ORDER BY plaats ASC ");
$result_vestigingen = mysql_query($query_vestigingen) or die ("FOUT: " .mysql_error());
while (list ($plaats, $id) = mysql_fetch_row($result_vestigingen) ){
echo ("<option value='".$plaats."'>".$plaats."</option>");}
?></td>
<td><select name="prijs"/><option label="Maak uw keuze" disabled="disabled"></option><option value="0-2000">0 - 2000</option> <option value="2000-5000">2000 - 5000</option><option value="+5000">+5000</option></td>
<td><select name="opstelling"/><option label="Maak uw keuze" disabled="disabled"></option><option value="recht">recht</option> <option value="L-vorm">L-vorm</option><option value="U-vorm">U-vorm</option><option value="Eiland">Eiland</option><option value="Wand">Wand</option></td>
</tr>
<tr>
<td colspan="3" style="padding-top:10px; padding-right:20px; text-align:right"><input class="button" name="verstuur" value="Zoeken" type="submit" id="verstuur" /></td>
</tr>
</table>
</fieldset>
</form>
Gewijzigd op 20/07/2011 15:02:09 door Ed van Papenrecht
Bedankt alvast!
plaats je code aub even tussen [code] en [/code] tags
Ik heb het opgelost, met een uitbreiding van de if statement. In plaats van steeds controleren of er de waarde apart is meegegeven. Controleer ik nu of de waarde leeg of gevuld is.
Zie code hieronder:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
$query = "SELECT vestigingen.vestiging_id, vestigingen.Plaats, naam, foto, prijs_org, prijs_start, uitverkoop_id FROM uitverkoop INNER JOIN vestigingen ON uitverkoop.vestiging_id=vestigingen.vestiging_id";
if ($_SERVER['REQUEST_METHOD'] == "POST")
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if(isset($_POST['vestiging']) or isset($_POST['opstelling']) or isset($_POST['prijs']))
{
if($_POST['vestiging'] !='' and $_POST['opstelling']!='' and $_POST['prijs'] !='')
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'
AND opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'
AND prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'";
}
if($_POST['vestiging'] !='' and $_POST['opstelling']!='' and $_POST['prijs'] =='')
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'
AND opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'";
}
elseif($_POST['vestiging']!='' and $_POST['prijs'] !='' and $_POST['opstelling'] =='')
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'
AND prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'";
}
elseif($_POST['opstelling'] !='' and $_POST['prijs'] !='' and $_POST['vestiging'] =='')
{
$query .= " WHERE opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'
AND prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'";
}
elseif($_POST['vestiging'] !='' and $_POST['prijs'] ==''and $_POST['opstelling'] =='')
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'";
}
elseif($_POST['prijs'] !='' and $_POST['opstelling'] =='' and $_POST['vestiging'] =='')
{
$query .= " WHERE prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'";
}
elseif($_POST['opstelling'] !='' and $_POST['prijs'] =='' and $_POST['vestiging'] =='')
{
$query .= " WHERE opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'";
}
}
}
$result= mysql_query($query);
?>
$query = "SELECT vestigingen.vestiging_id, vestigingen.Plaats, naam, foto, prijs_org, prijs_start, uitverkoop_id FROM uitverkoop INNER JOIN vestigingen ON uitverkoop.vestiging_id=vestigingen.vestiging_id";
if ($_SERVER['REQUEST_METHOD'] == "POST")
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if(isset($_POST['vestiging']) or isset($_POST['opstelling']) or isset($_POST['prijs']))
{
if($_POST['vestiging'] !='' and $_POST['opstelling']!='' and $_POST['prijs'] !='')
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'
AND opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'
AND prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'";
}
if($_POST['vestiging'] !='' and $_POST['opstelling']!='' and $_POST['prijs'] =='')
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'
AND opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'";
}
elseif($_POST['vestiging']!='' and $_POST['prijs'] !='' and $_POST['opstelling'] =='')
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'
AND prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'";
}
elseif($_POST['opstelling'] !='' and $_POST['prijs'] !='' and $_POST['vestiging'] =='')
{
$query .= " WHERE opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'
AND prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'";
}
elseif($_POST['vestiging'] !='' and $_POST['prijs'] ==''and $_POST['opstelling'] =='')
{
$query .= " WHERE vestigingen.plaats = '" . mysql_real_escape_string($_POST['vestiging']) . "'";
}
elseif($_POST['prijs'] !='' and $_POST['opstelling'] =='' and $_POST['vestiging'] =='')
{
$query .= " WHERE prijs_cat = '" . mysql_real_escape_string($_POST['prijs']) . "'";
}
elseif($_POST['opstelling'] !='' and $_POST['prijs'] =='' and $_POST['vestiging'] =='')
{
$query .= " WHERE opstelling = '" . mysql_real_escape_string($_POST['opstelling']) . "'";
}
}
}
$result= mysql_query($query);
?>