Multiple dropdown search
Ik probeer een pagina te maken waar je iets moet kiezen in 4 dropdown boxes en als je dan op "search" klik tot die dan het resultaat op een andere pagina geeft.
Hebben jullie misschien enig idee hoe dat zou moeten ik heb al wel gegoogled maar er komt niet zo veel uit wat relevant is voor mij :p
btw ik heb al een connection met de database en heb de tabel waar die uit moet zoeken al geselecteerd.
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
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
<div id="searchbar">
<div id="optie1">
<select style="width:125px">
<option>Here is the first option</option>
<option>The second option</option>
</select>
</div>
<div id="optie2">
<select style="width:125px" name="mydropdown">
<option value="">Kunstenaar</option>
<option value="optie1">optie1</option>
<option value="optie2">optie2</option>
</select>
</div>
<div id="optie3">
<select style="width:125px" name="mydropdown">
<option value="">Formaat</option>
<option value="optie1">optie1</option>
<option value="optie2">optie2</option>
</select>
</div>
<div id="optie4">
<select style="width:125px" name="mydropdown">
<option value="">Prijs</option>
<option value="optie1">optie1</option>
<option value="optie2">optie2</option>
</select>
</div>
<div id="zoeken">
<input type="image" src="images/nav/zoeken.png" name="image">
</div>
</div>
<div id="optie1">
<select style="width:125px">
<option>Here is the first option</option>
<option>The second option</option>
</select>
</div>
<div id="optie2">
<select style="width:125px" name="mydropdown">
<option value="">Kunstenaar</option>
<option value="optie1">optie1</option>
<option value="optie2">optie2</option>
</select>
</div>
<div id="optie3">
<select style="width:125px" name="mydropdown">
<option value="">Formaat</option>
<option value="optie1">optie1</option>
<option value="optie2">optie2</option>
</select>
</div>
<div id="optie4">
<select style="width:125px" name="mydropdown">
<option value="">Prijs</option>
<option value="optie1">optie1</option>
<option value="optie2">optie2</option>
</select>
</div>
<div id="zoeken">
<input type="image" src="images/nav/zoeken.png" name="image">
</div>
</div>
In een form zetten.
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
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
<div id="searchbar">
<form action="" method="post">
<div id="optie1">
<select style="width:125px">
<option>Here is the first option</option>
<option>The second option</option>
</select>
</div>
<div id="optie2">
<select style="width:125px" name="mydropdown">
<option value="">Kunstenaar</option>
<option value="optie1">optie1</option>
<option value="optie2">optie2</option>
</select>
</div>
<div id="optie3">
<select style="width:125px" name="mydropdown">
<option value="">Formaat</option>
<option value="optie1">optie1</option>
<option value="optie2">optie2</option>
</select>
</div>
<div id="optie4">
<select style="width:125px" name="mydropdown">
<option value="">Prijs</option>
<option value="optie1">optie1</option>
<option value="optie2">optie2</option>
</select>
</div>
<div id="zoeken">
<input type="button" name="verzend" value="verzenden" src="images/nav/zoeken.png" >
</div>
</form>
</div>
<form action="" method="post">
<div id="optie1">
<select style="width:125px">
<option>Here is the first option</option>
<option>The second option</option>
</select>
</div>
<div id="optie2">
<select style="width:125px" name="mydropdown">
<option value="">Kunstenaar</option>
<option value="optie1">optie1</option>
<option value="optie2">optie2</option>
</select>
</div>
<div id="optie3">
<select style="width:125px" name="mydropdown">
<option value="">Formaat</option>
<option value="optie1">optie1</option>
<option value="optie2">optie2</option>
</select>
</div>
<div id="optie4">
<select style="width:125px" name="mydropdown">
<option value="">Prijs</option>
<option value="optie1">optie1</option>
<option value="optie2">optie2</option>
</select>
</div>
<div id="zoeken">
<input type="button" name="verzend" value="verzenden" src="images/nav/zoeken.png" >
</div>
</form>
</div>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
<div id="searchbar">
<form action="uitkomst.php" method="post">
<div id="optie1">
<select name="myselect" style="width:125px">
<option>Here is the first option</option>
<option>The second option</option>
</select>
</div>
<!-- en de rest van de div's -->
</form>
</div>
?>
<div id="searchbar">
<form action="uitkomst.php" method="post">
<div id="optie1">
<select name="myselect" style="width:125px">
<option>Here is the first option</option>
<option>The second option</option>
</select>
</div>
<!-- en de rest van de div's -->
</form>
</div>
?>
en dan een script die je opslaat als uitkomst.php:
?>
Belangrijk is: zet de action="..." attribute in de <form> tag
en zet altijd een name="..." attribute in je formuliervelden zoals <select>, <input>, en <textarea>
gr. Frank
Gewijzigd op 28/09/2012 00:10:05 door Frank Nietbelangrijk
kan ik ook het resultaat laten vergelijken in een database en dan de waardes die gelijk zijn een bepaalde $row terug geven?
Gr marco
Toevoeging op 01/10/2012 09:38:02:
Ik heb dit geprobeerd want dit is denk ik de zoekfunctie ongeveer maar alleen ik weet niet hoe ik het vergelijk stuk dus moet maken :p
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
require ("require/dbconnect.php");
$balk1 = $_POST['balk1'];
$balk2 = $_POST['balk2'];
$balk3 = $_POST['balk3'];
$balk4 = $_POST['balk4'];
$sql = mysql_query("select * from search where soort like '%$balk1%' or kunstenaar like '%$balk2%' or formaat like '%$balk3%' or prijs like '%$balk4%'");
while ($row = mysql_fetch_array($sql)){
$result .= '<br/><strong> '.$row['soort'].'</strong>';
$result .= '<br/> '.$row['kunstenaar'];
$result .= '<br/> '.$row['kunstenaar'];
$result .= '<br/> '.$row['prijs'];
$result .= '<br/>';
}
?>
require ("require/dbconnect.php");
$balk1 = $_POST['balk1'];
$balk2 = $_POST['balk2'];
$balk3 = $_POST['balk3'];
$balk4 = $_POST['balk4'];
$sql = mysql_query("select * from search where soort like '%$balk1%' or kunstenaar like '%$balk2%' or formaat like '%$balk3%' or prijs like '%$balk4%'");
while ($row = mysql_fetch_array($sql)){
$result .= '<br/><strong> '.$row['soort'].'</strong>';
$result .= '<br/> '.$row['kunstenaar'];
$result .= '<br/> '.$row['kunstenaar'];
$result .= '<br/> '.$row['prijs'];
$result .= '<br/>';
}
?>
Gewijzigd op 01/10/2012 09:43:19 door - Marco -
kan iemand mij helpen met het vergelijken van het resultaat in de database aub? :)
bv. Als je iets als $_POST['balk1'] wil gebruiken, moet dat komen van
<select name="balk1">
Maar ik wil tot de ingevulde resultaten vergelijken met die die in de database staan en daarvan bijvoorbeeld een foto laat zien dan dus bijvoorbeeld ik vul dit in:
Paintings, meneer3, 250 x 250, 100 euro en in de database staat ook een lijn met dat erin dan moet de foto geecho'ed worden.
In de database staat deze rij dus
Naam, Door wie?, maat, prijs, foto
Paintings, meneer3, 250 x 250, 100 euro, test.png
Hoe zou ik dit dan kunnen doen?
Ik weet alleen niet hoe ik de uitkomst van de drop down boxen moet vergelijken met die van in de database?
Zolang ik dit niet aangepast zie, is elke andere aanpassing zinloos.
Gewijzigd op 02/10/2012 11:35:05 door Kris Peeters
http://phptuts.nl/view/41/7/
En dan met de $_POST-waarden uit je script werken.
Denk ook aan de beveiliging.
En dan met de $_POST-waarden uit je script werken.
Denk ook aan de beveiliging.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
SELECT
voornaam
FROM
werknemers
WHERE
salaris_schaal = 10
AND
achternaam = 'Vosse'
?>
SELECT
voornaam
FROM
werknemers
WHERE
salaris_schaal = 10
AND
achternaam = 'Vosse'
?>
gaan werken of niet?
Ik heb 4 dropdownboxen met allemaal verschillende waarden en hij checked nu alleen of een balk leeg is maar niet of de ingevulde waarde gelijk is aan de andere dropdownboxen. In mijn table in de database heb ik 4 verschillende rijen die elk 4 waarden kennen en deze waarden wil ik checken aan de hand van die vier dropdownboxen.
En als er maar 2 waarden uit een rij overeenkomen met de vier dropdownboxen moet je alleen die rij weergeven en als er bijv. 1 waarde overeenkomt met 2 rijen uit die table moet hij die weergeven en hetzelfde met 3 waarden natuurlijk :p
Hoe kan ik dat bereiken?
Dit is mijn 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<div id="textform2">
<?php
require ("require/dbconnect.php");
$sql = "SELECT * FROM `search`";
$result = mysql_query($sql, $connection)
or die ("niet gelukt om de query:
$sql uit te voeren op $connection");
$result5 = mysql_query("SELECT * FROM search");
//array
$searchResult = array();
while($row=mysql_fetch_array($result))
{
if($_POST['balk1'] == $row['soort'])
{
array_push($searchResult, $row['id_photo']);
}
else
{
//zoeken in array of row[id] erin staat, en dan verwijderen uit array
if((in_array($row['id_photo'], $searchResult)) && ($_POST['balk2'] != ''))
{
unset($searchResult[array_search($row['id_photo'], $searchResult)]);
}
}
// zoek op soort
if($_POST['balk2'] == $row['kunstenaar'])
{
array_push($searchResult, $row['id_photo']);
}
else
{
//zoeken in array of row[id] erin staat, en dan verwijderen uit array
if((in_array($row['id_photo'], $searchResult)) && ($_POST['balk2'] != ''))
{
unset($searchResult[array_search($row['id_photo'], $searchResult)]);
}
}
// zoek op formaat
if($_POST['balk3'] == $row['formaat'])
{
array_push($searchResult, $row['id_photo']);
}
else
{
//zoeken in array of row[id] erin staat, en dan verwijderen uit array
if((in_array($row['id_photo'], $searchResult)) && ($_POST['balk3'] != ''))
{
unset($searchResult[array_search($row['id_photo'], $searchResult)]);
}
}
// zoek op prijs
if($_POST['balk4'] == $row['prijs'])
{
array_push($searchResult, $row['id_photo']);
}
else
{
//zoeken in array of row[id] erin staat, en dan verwijderen uit array
if((in_array($row['id_photo'], $searchResult)) && ($_POST['balk4'] != ''))
{
unset($searchResult[array_search($row['id_photo'], $searchResult)]);
}
}
}
//print_r(array_unique($searchResult));
if(count($searchResult)== 0)
{
echo "Er zijn geen zoekresultaten gevonden.";
}
?>
<div id="testplaatje">
<?php
while($row = mysql_fetch_array($result5))
{
if($row['id_photo'] == in_array($row['id_photo'], $searchResult))
{
echo '<img width="200" src="http://localhost/marco/brandsofart/images/imagesDB/'.$row["imagepath"].'"/>';
}
}
?>
</div>
</div>
[/CODE]
<?php
require ("require/dbconnect.php");
$sql = "SELECT * FROM `search`";
$result = mysql_query($sql, $connection)
or die ("niet gelukt om de query:
$sql uit te voeren op $connection");
$result5 = mysql_query("SELECT * FROM search");
//array
$searchResult = array();
while($row=mysql_fetch_array($result))
{
if($_POST['balk1'] == $row['soort'])
{
array_push($searchResult, $row['id_photo']);
}
else
{
//zoeken in array of row[id] erin staat, en dan verwijderen uit array
if((in_array($row['id_photo'], $searchResult)) && ($_POST['balk2'] != ''))
{
unset($searchResult[array_search($row['id_photo'], $searchResult)]);
}
}
// zoek op soort
if($_POST['balk2'] == $row['kunstenaar'])
{
array_push($searchResult, $row['id_photo']);
}
else
{
//zoeken in array of row[id] erin staat, en dan verwijderen uit array
if((in_array($row['id_photo'], $searchResult)) && ($_POST['balk2'] != ''))
{
unset($searchResult[array_search($row['id_photo'], $searchResult)]);
}
}
// zoek op formaat
if($_POST['balk3'] == $row['formaat'])
{
array_push($searchResult, $row['id_photo']);
}
else
{
//zoeken in array of row[id] erin staat, en dan verwijderen uit array
if((in_array($row['id_photo'], $searchResult)) && ($_POST['balk3'] != ''))
{
unset($searchResult[array_search($row['id_photo'], $searchResult)]);
}
}
// zoek op prijs
if($_POST['balk4'] == $row['prijs'])
{
array_push($searchResult, $row['id_photo']);
}
else
{
//zoeken in array of row[id] erin staat, en dan verwijderen uit array
if((in_array($row['id_photo'], $searchResult)) && ($_POST['balk4'] != ''))
{
unset($searchResult[array_search($row['id_photo'], $searchResult)]);
}
}
}
//print_r(array_unique($searchResult));
if(count($searchResult)== 0)
{
echo "Er zijn geen zoekresultaten gevonden.";
}
?>
<div id="testplaatje">
<?php
while($row = mysql_fetch_array($result5))
{
if($row['id_photo'] == in_array($row['id_photo'], $searchResult))
{
echo '<img width="200" src="http://localhost/marco/brandsofart/images/imagesDB/'.$row["imagepath"].'"/>';
}
}
?>
</div>
</div>
[/CODE]