dropdownlist chained 4 lagen mysql

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Web razor

Web razor

31/08/2010 12:06:01
Quote Anchor link
Ik probeer al een tijdje een script te maken/zoeken die er voor zorgen dat gegevens uit een database haald en dit vervolgens plaatst in een dropdownlist. Na dat er een keuze gemaakt is in de eerste dropdownlist moet de volgende dropdownlist worden ingevult door nieuwe gegevens etc etc. Als je dit alle 4de dropdownlist hebt ingevuld blijft er nog maar 1 resultaat over en deze moet vervolgens worden weergegeven.

Mijn database bestaat uit de volgende gegevens:

Database tabel: autos
De tabel heeft de volgende kolommen: merk, modelserie, model, uitvoering

De eerste drie dropdownlist krijg ik reeds ingevult door gegevens uit de database te lezen en dubbele items te filteren. Maar de laatste dropdownlist wil nog niet erg mee werken.

Ik krijg geen foutmelding er wordt gewoon niks weer gegeven.

Het gaat hier ergens fout denk ik.

$result = mysql_query("SELECT DISTINCT uitvoering FROM autos WHERE merk='".$_GET['drop_1']."'AND modelserie='".$_GET['drop_2']."' AND model='".$drop_var."'")
or die(mysql_error());

Als ik alleen dit gebruik gaat het gedeeltelijk goed want het werkt namelijk wel in firefox maar niet in IE8

$result = mysql_query("SELECT DISTINCT uitvoering FROM autos WHERE model='".$drop_var."'")
or die(mysql_error());

Het probleem zit hem denk ik in de $_GET['drop_1'] en de $_GET['drop_2'] deze zijn volgens mij leeg. Kan het niet zijn dat ze leeg zijn, ze worden via een javascript aangemaakt. want als ik in de bron kijk van het uiteindelijke resultaat bestaan deze dropdownlist ook niet terwijl je ze wel in beeld ziet. Ben zelf ook een beetje een leek in php hopelijk dat iemand met een beetje kennis van php het zo ziet?

Iemand een idee waar het mis gaat en wat ik kan aanpassen zodat het ook in IE werkt?





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
<?php
//**************************************
//     Page load dropdown results     //
//**************************************

function getTierOne()
{

    $result = mysql_query("SELECT DISTINCT merk FROM autos")
    or die(mysql_error());

      while($tier = mysql_fetch_array( $result ))
  
        {

           echo '<option value="'.$tier['merk'].'">'.$tier['merk'].'</option>';
        }

}


//**************************************
//     First selection results     //
//**************************************

if($_GET['func'] == "drop_1" && isset($_GET['func'])) {
   drop_1($_GET['drop_var']);
}

function
drop_1($drop_var)
{
  
    include_once('../../includes/config.inc.php');
    $result = mysql_query("SELECT DISTINCT modelserie FROM autos WHERE merk='$drop_var'")
    or die(mysql_error());
    
    echo '<select name="drop_2" id="drop_2">
          <option value=" " disabled="disabled" selected="selected">Choose one</option>'
;

           while($drop_2 = mysql_fetch_array( $result ))
            {

              echo '<option value="'.$drop_2['modelserie'].'">'.$drop_2['modelserie'].'</option>';
            }

    
    echo '</select>';
    echo "<script type=\"text/javascript\">
$('#wait_2').hide();
    $('#drop_2').change(function(){
      $('#wait_2').show();
      $('#result_2').hide();
      $.get(\"func.php\", {
        func: \"drop_2\",
        drop_var: $('#drop_2').val()
      }, function(response){
        $('#result_2').fadeOut();
        setTimeout(\"finishAjax_tier_three('result_2', '\"+escape(response)+\"')\", 400);
      });
        return false;
    });
</script>"
;
}



//**************************************
//     Second selection results     //
//**************************************

if($_GET['func'] == "drop_2" && isset($_GET['func'])) {
   drop_2($_GET['drop_var']);
}

function
drop_2($drop_var)
{
  
    include_once('../../includes/config.inc.php');
    $result = mysql_query("SELECT DISTINCT model FROM autos WHERE modelserie='$drop_var'")
    or die(mysql_error());
    
    echo '<select name="drop_3" id="drop_3">
          <option value=" " disabled="disabled" selected="selected">Choose one</option>'
;

           while($drop_3 = mysql_fetch_array( $result ))
            {

              echo '<option value="'.$drop_3['model'].'">'.$drop_3['model'].'</option>';
            }

    
    echo '</select>';
    echo "<script type=\"text/javascript\">
$('#wait_3').hide();
    $('#drop_3').change(function(){
      $('#wait_3').show();
      $('#result_3').hide();
      $.get(\"func.php\", {
        func: \"drop_3\",
        drop_var: $('#drop_3').val()
      }, function(response){
        $('#result_3').fadeOut();
        setTimeout(\"finishAjax_tier_four('result_3', '\"+escape(response)+\"')\", 400);
      });
        return false;
    });
</script>"
;
}



//**************************************
//     Second selection results     //
//**************************************

if($_GET['func'] == "drop_3" && isset($_GET['func'])) {
   drop_3($_GET['drop_var']);
}

function
drop_3($drop_var)
{
  
    include_once('../../includes/config.inc.php');
    $result = mysql_query("SELECT DISTINCT uitvoering FROM autos WHERE merk='".$_GET['drop_1']."'AND modelserie='".$_GET['drop_2']."' AND model='".$drop_var."'")
    or die(mysql_error());
    
    echo '<select name="drop_4" id="drop_4">
          <option value=" " disabled="disabled" selected="selected">Choose one</option>'
;

           while($drop_4 = mysql_fetch_array( $result ))
            {

              echo '<option value="'.$drop_4['uitvoering'].'">'.$drop_4['uitvoering'].'</option>';
            }

    
    echo '</select> ';
    echo '<input type="submit" name="submit" value="Submit" />';
}

?>


Toevoeging op 31/08/2010 14:10:46:

Heb het probleem opgelost door na elke selectie in de dropdownlist de gegevens naar een SESSION te schrijven en die later weer op te vragen.

Voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?PHP
//**************************************
//     First selection results     //
//**************************************

if($_GET['func'] == "drop_1" && isset($_GET['func'])) {
   drop_1($_GET['drop_var']);
   $_SESSION['drop_1'] = $_GET['drop_var'];
}

?>
Gewijzigd op 31/08/2010 14:41:00 door Web razor
 
Er zijn nog geen reacties op dit bericht.



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.