Meerdere pull-down menu's, data uit database in 1 veld

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

M de Vries

M de Vries

13/06/2010 14:59:04
Quote Anchor link
Hallo,

Ik heb nu 3 pull-down menu's op mijn site: https://www.sanizo.nl/producten/08_rechthoekbad/

Ik wil daar graag 8 pull-down menu's van maken. De data wordt uit een db gehaald, en daar begint mijn probleem. De site bevat heel veel producten met allemaal verschillende eigenschappen, er is nu een script dat naar aparte velden kijkt voor de inhoud. In de huidige situatie zou dat resulteren in (misschien wel) 100 pull-down menu's.
Hoe kan ik alleen de 8 pull-down menu's laten zien die bij dat product horen?

De data per product staat in 1 veld gescheiden door een -

Ik hoop dat iemand me op weg kan helpen?

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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<?php
if (!$_GET['cid']) {
    header('Location: /');
    exit;
}

if (!defined('PATH'))
    define('PATH', '');
    
$productOverview = true;    
require_once (PATH.'inc/config.php');




$sSubCategorie = ucfirst(substr($_GET['cid'], 3));

//get all brandnames
$brandOptions = '';
$sQuery = 'SELECT DISTINCT tb_fabrikaat FROM products WHERE tb_categorie = "'.mysql_real_escape_string($_GET['cid']).'"';
    $rResult = mysql_query($sQuery) or die(mysql_error());
while($sRow = mysql_fetch_array($rResult)){
    
    //create the count
$sQuery = mysql_query('SELECT COUNT(p.tb_id) as totaal FROM products p WHERE p.tb_fabrikaat = "'.mysql_real_escape_string($sRow['tb_fabrikaat']).'" AND p.tb_categorie = "'.mysql_real_escape_string($_GET['cid']).'"') or die(mysql_error());
    $totaal = mysql_fetch_object($sQuery);
    
    if($_POST['brand'] == $sRow['tb_fabrikaat']){
        $selected = 'selected';
    }
else{
        $selected = '';
    }

    
    $brandOptions .= '<option '.$selected.' value="'.$sRow['tb_fabrikaat'].'">'.$sRow['tb_fabrikaat'].' ('.$totaal->totaal.')</option>';
}


//get the pulldown options
$pulldownOptions = '';
$sQuery = 'SELECT DISTINCT tb_pulldown FROM products WHERE tb_categorie = "'.mysql_real_escape_string($_GET['cid']).'"';
    $rResult = mysql_query($sQuery) or die(mysql_error());
$pulldown = mysql_fetch_object($rResult);
$aPulldown = explode('-', $pulldown->tb_pulldown);    
for($i = 0; $i < count($aPulldown); $i++){    
    if($_POST['pulldownoptions'] == $aPulldown[$i]){
        $selected = 'selected';
    }
else{
        $selected = '';
    }

    if(!empty($aPulldown[$i + 1]) && !empty($aPulldown[$i])){
        $pulldownOptions .= '<option '.$selected.' value="'.$aPulldown[$i + 1].'">'.$aPulldown[$i].' '.$aPulldown[$i + 1].'</option>';
    }

    
    $i += 1;
    
}


//price options
$priceOptions = '';
$sQuery = 'SELECT tb_prijs FROM products WHERE tb_categorie = "'.mysql_real_escape_string($_GET['cid']).'"';
    $rResult = mysql_query($sQuery) or die(mysql_error());
$pulldown = mysql_fetch_object($rResult);
$aPulldown = explode('-', $pulldown->tb_prijs);    

for($i = 0; $i < count($aPulldown); $i++){    
    if($_POST['price'] == 'BETWEEN'.$aPulldown[$i].'AND'.$aPulldown[$i + 1].''){
        $selected = 'selected';
    }
else{
        $selected = '';
    }

    if(!empty($aPulldown[$i + 1])){
        $priceOptions .= '<option value="BETWEEN '.$aPulldown[$i].' AND '.$aPulldown[$i + 1].'">'.$aPulldown[$i].' - '.$aPulldown[$i + 1].'</option>';
    }
}





if($_POST['brand'] && $_POST['brand'] != 'Selecteer op merk' && $_POST['price'] == 'nonSelected') {
    $sWhere = 'WHERE p.tb_fabrikaat = "'.mysql_real_escape_string($_POST['brand']).'" AND p.tb_categorie = "'.mysql_real_escape_string($_GET['cid']).'";';
}
elseif($_POST['price'] && $_POST['pulldownoptions'] == 'Selecteer uw opties' && $_POST['brand'] == 'Selecteer op merk') {
    $sWhere = 'WHERE p.tb_adviesprijs '.$_POST['price'].' AND p.tb_categorie = "'.mysql_real_escape_string($_GET['cid']).'";';
}
elseif($_POST['pulldownoptions'] && $_POST['price'] == 'nonSelected' && $_POST['brand'] == 'Selecteer op merk') {
    $sWhere = 'WHERE p.tb_pulldown LIKE "%'.$_POST['pulldownoptions'].'%" AND p.tb_categorie = "'.mysql_real_escape_string($_GET['cid']).'";';

}
else {
    $sWhere = 'WHERE p.tb_categorie = "'.mysql_real_escape_string($_GET['cid']).'";';
}





$sQuery = 'SELECT  p.*, i.tb_groot_gif, i.tb_klein_jpg  FROM products p
           LEFT JOIN images_db i ON p.tb_id = i.tb_id
           '
.$sWhere.'
          
          
'
;
$rResult = mysql_query($sQuery) or die(mysql_error());




$sProducts = '';

while ($sRow = mysql_fetch_array($rResult)) {
$imageHoverText = '
        <strong>'
.ucfirst(strtolower($sRow['tb_artikelnummer'])).' '.ucfirst(strtolower($sRow['tb_omschrijving'])).'<br><br>
        Onze prijs: &euro;'
.$sRow['tb_verkoop'].'</strong><br><br>
        '
.$sRow['tb_meer_info'].'
        '
;
    
    if(!file_exists('productimages/'.$sRow['tb_groot_gif'])){
        $imageBig = '/images/noImageBig.png';
    }
else{
        $imageBig = '/productimages/'.$sRow['tb_groot_gif'];
    }

    
    if(!file_exists('productimages/'.$sRow['tb_klein_jpg'])) {
        $imageSmall = '/images/noImageSmall.png';
    }
else{
        $imageSmall = '/productimages/'.$sRow['tb_klein_jpg'];
    }

    $sProducts .= '
    <li>
        <a href="'
.$imageBig.'" title="'.$imageHoverText.'" onClick="document.location = \'/product/'.$_GET['cid'].'/'.$sRow['tb_id'].'/'.urlencode($sRow['tb_omschrijving']).'/\'; return false;"><img src="'.$imageSmall.'" alt="'.ucfirst($sRow['tb_fabrikaat']).' '.ucfirst(strtolower($sRow['tb_omschrijving'])).'" title="'.ucfirst($sRow['tb_fabrikaat']).' '.ucfirst(strtolower($sRow['tb_omschrijving'])).'"></a>
        <div class="infoBlock">
            <a href="/product/'
.$_GET['cid'].'/'.$sRow['tb_id'].'/'.urlencode($sRow['tb_omschrijving']).'/">
                '
.$sRow['tb_fabrikaat'].'<br>&euro;'.number_format(str_replace(',', '.', $sRow['tb_verkoop']), 2, ',', '').'
            </a>
        </div>
    </li>
    '
;
}



$sContent = '
    <div id="productsOverview">
        <div id="searchInProducts">
            <form action="" method="POST">
                <select name="brand" onChange="this.form.submit();">
                    <option value="Selecteer op merk">Selecteer op merk</option>
                    '
.$brandOptions.'
                </select>
                <select name="pulldownoptions" onChange="this.form.submit();">
                    <option value="Selecteer uw opties">Selecteer uw opties</option>
                    '
.$pulldownOptions.'
                </select>
                <select name="price" onChange="this.form.submit();">
                    <option value="nonSelected">Selecteer op prijs</option>
                    '
.$priceOptions.'
                </select>
            </form>
        </div>
        <ul id="productImages">
            '
.$sProducts.'
        </ul>
        <br class="clearBoth">
    </div>
'
;

require_once (PATH.'template.tpl');
?>
 
PHP hulp

PHP hulp

21/11/2024 19:47:26
 
- SanThe -

- SanThe -

13/06/2010 15:14:58
Quote Anchor link
Site staat bij Firstfind.nl en is dus niet te bereiken voor mij omdat de DNS niet correct is.
 
M de Vries

M de Vries

13/06/2010 15:18:55
Quote Anchor link
Dat ie vreemd, de site wordt verhuisd en DNS is aangepast naar de nieuwe provider, heb eerder al een post gedaan en daar kon iedereen wel op de site!
 
Ivo K

Ivo K

13/06/2010 15:30:42
Quote Anchor link
Quote:
Deze verbinding is niet beveiligd

U hebt Firefox gevraagd een beveiligde verbinding
op te zetten met www.sanizo.nl, maar we kunnen niet bevestigen dat uw verbinding beveiligd is.
 
M de Vries

M de Vries

13/06/2010 15:38:07
Quote Anchor link
Het certificaat is vrijdag geïnstalleerd, zal morgen eens bij mijn provider informeren hoe dit zit, bedankt!
 
Piet Verhagen

Piet Verhagen

13/06/2010 18:02:27
Quote Anchor link
M de Vries op 13/06/2010 15:18:55:
Dat ie vreemd, de site wordt verhuisd en DNS is aangepast naar de nieuwe provider, heb eerder al een post gedaan en daar kon iedereen wel op de site!

Nee, toen kon ik er ook niet op. Bij mij zegtie onveilige verbinding. Zou ik het certificaat moeten accepteren en dat doet ik niet bij een website waarvan ik verder niets weet.
 
M de Vries

M de Vries

13/06/2010 18:53:53
Quote Anchor link
Dit gebeurd ook alleen bij modzilla, andere browsers werkt het gewoon.
 
- SanThe -

- SanThe -

13/06/2010 21:03:21
Quote Anchor link
M de Vries op 13/06/2010 18:53:53:
Dit gebeurd ook alleen bij modzilla, andere browsers werkt het gewoon.


Dus?
 



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.