Multiple dropdown search

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Marco -

- Marco -

27/09/2012 11:07:09
Quote Anchor link
hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<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>
 
PHP hulp

PHP hulp

24/12/2024 04:40:27
 
Obelix Idefix

Obelix Idefix

27/09/2012 14:16:05
Quote Anchor link
In een form zetten.
 
David M

David M

27/09/2012 22:10:01
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<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>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

28/09/2012 00:07:44
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>
?>


en dan een script die je opslaat als uitkomst.php:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "De uitkomst is: ".$_POST['myselect'];
?>


?>

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
 
- Marco -

- Marco -

01/10/2012 09:28:31
Quote Anchor link
Dank je het werkt :)
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)
PHP script in nieuw venster Selecteer het PHP script
1
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/>';
        }

    
?>
Gewijzigd op 01/10/2012 09:43:19 door - Marco -
 
- Marco -

- Marco -

02/10/2012 10:39:14
Quote Anchor link
kan iemand mij helpen met het vergelijken van het resultaat in de database aub? :)
 
Kris Peeters

Kris Peeters

02/10/2012 11:01:10
Quote Anchor link
Je zorgt er gewoon voor dat de 4 <select>'s elk een unieke name hebben. Die name zet je dan in de post-variabele.

bv. Als je iets als $_POST['balk1'] wil gebruiken, moet dat komen van
<select name="balk1">
 
- Marco -

- Marco -

02/10/2012 11:21:02
Quote Anchor link
Ik heb de code van Frank ook gebruikt en die is eigenlijk hetzelfde wat jij nu zegt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "De uitkomst is: ".$_POST['myselect'];
?>


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?
 
- SanThe -

- SanThe -

02/10/2012 11:30:57
 
- Marco -

- Marco -

02/10/2012 11:34:00
Quote Anchor link
Ik heb wel een verbinding met de database, iig daar wijst je tutorial naar met verbinding maken met een database.

Ik weet alleen niet hoe ik de uitkomst van de drop down boxen moet vergelijken met die van in de database?
 
Kris Peeters

Kris Peeters

02/10/2012 11:34:25
Quote Anchor link
Ik ben de enige die het gehad heeft over het feit dat die name van de vier selects uniek hoort te zijn. Ze moeten allemaal een andere name hebben!

Zolang ik dit niet aangepast zie, is elke andere aanpassing zinloos.
Gewijzigd op 02/10/2012 11:35:05 door Kris Peeters
 
- SanThe -

- SanThe -

02/10/2012 11:35:48
Quote Anchor link
http://phptuts.nl/view/41/7/
En dan met de $_POST-waarden uit je script werken.
Denk ook aan de beveiliging.
 
- Marco -

- Marco -

02/10/2012 11:39:10
Quote Anchor link
Dank je wel voor je reactie maar wat op die pagina staat is denk ik niet wat ik zoek. want je kan in de dropdown boxe verschillende dingen selecteren en er zijn 4 dropdown boxen dus dan moet ik met heel veel
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
SELECT
    voornaam
FROM
    werknemers
WHERE
    salaris_schaal = 10
AND
    achternaam = 'Vosse'
?>


gaan werken of niet?
 
- Marco -

- Marco -

11/10/2012 14:41:15
Quote Anchor link
ok ik ben nu zover
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)
PHP script in nieuw venster Selecteer het PHP script
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
<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]
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.