PHP AJAX json probleempje
Ik ben aan de gang gegaan met een Chained Select plugin en ben tot noch toe erg ver gekomen. Alles keuzes zijn heb ik succesvol er in geprogrammeerd en alles werkt naar behoren. Nu zit ik met het probleem dat ik na het selecteren van alle opties naar het desbetreffende product moet worden gewezen (of de data uit de database halen, maakt niet zo veel uit) alleen krijg ik die variable niet aan het werken. Hieronder heb ik de code geplakt van mijn ajax.php bestand.
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
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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
<?php
class SelectBox{
public $items = array();
public $defaultText = '';
public $title = '';
public function __construct($title, $default){
$this->defaultText = $default;
$this->title = $title;
}
public function addItem($name, $connection = NULL){
$this->items[$name] = $connection;
return $this;
}
public function toJSON(){
return json_encode($this);
}
}
// Vraag 1
$productSelect = new SelectBox('Voor welke doelgroep zoekt u handschoenen?','Maak uw keuze..');
$productSelect->addItem('Senioren','aSelect')
->addItem('Junioren','bSelect');
// Vraag 2
$aSelect = new SelectBox('Wilt u vingerprotectie in de handschoen?','Maak uw keuze..');
$aSelect->addItem('Ja','aaSelect')
->addItem('Nee','abSelect');
$bSelect = new SelectBox('Wilt u vingerprotectie in de handschoen?','Maak uw keuze..');
$bSelect->addItem('Ja','baSelect')
->addItem('Nee','bbSelect');
// Vraag 3
$aaSelect = new SelectBox('Wilt u een handschoen met fingerroll?','Maak uw keuze..');
$aaSelect->addItem('Ja','aaaSelect')
->addItem('Nee','aabSelect');
$bbSelect = new SelectBox('Wilt u een handschoen met fingerroll?','Maak uw keuze..');
$bbSelect->addItem('Ja','bbaSelect')
->addItem('Nee','bbbSelect');
$abSelect = new SelectBox('Wilt u een handschoen met fingerroll?','Maak uw keuze..');
$abSelect->addItem('Ja','abaSelect')
->addItem('Nee','abbSelect');
$baSelect = new SelectBox('Wilt u een handschoen met fingerroll?','Maak uw keuze..');
$baSelect->addItem('Ja','baaSelect')
->addItem('Nee','babSelect');
// Vraag 4
$aaaSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$aaaSelect->addItem('Super soft profi foam','aaaaSelect')
->addItem('Soft foam','aaabSelect');
$bbaSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$bbaSelect->addItem('Super soft profi foam','bbaaSelect')
->addItem('Soft foam','bbabSelect');
$abaSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$abaSelect->addItem('Super soft profi foam','abaaSelect')
->addItem('Soft foam','ababSelect');
$baaSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$baaSelect->addItem('Super soft profi foam','baaaSelect')
->addItem('Soft foam','baabSelect');
$aabSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$aabSelect->addItem('Super soft profi foam','aabaSelect')
->addItem('Soft foam','aabbSelect');
$bbbSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$bbbSelect->addItem('Super soft profi foam','bbbaSelect')
->addItem('Soft foam','bbbbSelect');
$abbSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$abbSelect->addItem('Super soft profi foam','abbaSelect')
->addItem('Soft foam','abbbSelect');
$babSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$babSelect->addItem('Super soft profi foam','babaSelect')
->addItem('Soft foam','babbSelect');
// Vraag 5
$aaaaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$aaaaSelect->addItem('Ja','aaaaaSelect')
->addItem('Nee','aaaabSelect');
$aaabSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$aaabSelect->addItem('Ja','bbaaaSelect')
->addItem('Nee','bbaabSelect');
$abaaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$abaaSelect->addItem('Ja','abaaaSelect')
->addItem('Nee','abaabSelect');
$ababSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$ababSelect->addItem('Ja','baaaaSelect')
->addItem('Nee','baaabSelect');
$baaaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$baaaSelect->addItem('Ja','aabaaSelect')
->addItem('Nee','aababSelect');
$baabSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$baabSelect->addItem('Ja','bbbabSelect')
->addItem('Nee','bbbabSelect');
$bbabSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$bbabSelect->addItem('Ja','abbaaSelect')
->addItem('Nee','abbabSelect');
$bbaaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$bbaaSelect->addItem('Ja','babaaSelect')
->addItem('Nee','bababSelect');
$aabaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$aabaSelect->addItem('Ja','aaabaSelect')
->addItem('Nee','aaabbSelect');
$aabbSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$aabbSelect->addItem('Ja','bbabaSelect')
->addItem('Nee','bbabbSelect');
$abbaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$abbaSelect->addItem('Ja','ababaSelect')
->addItem('Nee','ababbSelect');
$abbbSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$abbbSelect->addItem('Ja','baabaSelect')
->addItem('Nee','baabbSelect');
$babaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$babaSelect->addItem('Ja','aabbaSelect')
->addItem('Nee','aaabbSelect');
$babbSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$babbSelect->addItem('Ja','bbbbaSelect')
->addItem('Nee','bbbbbSelect');
$bbbbSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$bbbbSelect->addItem('Ja','abbbaSelect')
->addItem('Nee','abbbbSelect');
$bbbaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$bbbaSelect->addItem('Ja','babbaSelect')
->addItem('Nee','babbbSelect');
$aaaaaSelect = "<h1>Thunder</h1> <p>Thunder III</p>";
$selects = array(
'productSelect' => $productSelect,
'aSelect' => $aSelect,
'bSelect' => $bSelect,
'abSelect' => $abSelect,
'baSelect' => $baSelect,
'aaSelect' => $aaSelect,
'bbSelect' => $bbSelect,
'aaaSelect' => $aaaSelect,
'aabSelect' => $aabSelect,
'abaSelect' => $abaSelect,
'abbSelect' => $abbSelect,
'baaSelect' => $baaSelect,
'babSelect' => $babSelect,
'bbbSelect' => $bbbSelect,
'bbaSelect' => $bbaSelect,
'aaaaSelect' => $aaaaSelect,
'aaabSelect' => $aaabSelect,
'abaaSelect' => $abaaSelect,
'ababSelect' => $ababSelect,
'baaaSelect' => $baaaSelect,
'baabSelect' => $baabSelect,
'bbabSelect' => $bbabSelect,
'bbaaSelect' => $bbaaSelect,
'aabaSelect' => $aabaSelect,
'aabbSelect' => $aabbSelect,
'abbaSelect' => $abbaSelect,
'abbbSelect' => $abbbSelect,
'babaSelect' => $babaSelect,
'babbSelect' => $babbSelect,
'bbbbSelect' => $bbbbSelect,
'bbbaSelect' => $bbbaSelect,
'aaaaaSelect' => $aaaaaSelect
);
if(array_key_exists($_GET['key'],$selects)){
header('Content-type: application/json');
echo $selects[$_GET['key']]->toJSON();
}
else{
header("HTTP/1.0 404 Not Found");
header('Status: 404 Not Found');
}
?>
class SelectBox{
public $items = array();
public $defaultText = '';
public $title = '';
public function __construct($title, $default){
$this->defaultText = $default;
$this->title = $title;
}
public function addItem($name, $connection = NULL){
$this->items[$name] = $connection;
return $this;
}
public function toJSON(){
return json_encode($this);
}
}
// Vraag 1
$productSelect = new SelectBox('Voor welke doelgroep zoekt u handschoenen?','Maak uw keuze..');
$productSelect->addItem('Senioren','aSelect')
->addItem('Junioren','bSelect');
// Vraag 2
$aSelect = new SelectBox('Wilt u vingerprotectie in de handschoen?','Maak uw keuze..');
$aSelect->addItem('Ja','aaSelect')
->addItem('Nee','abSelect');
$bSelect = new SelectBox('Wilt u vingerprotectie in de handschoen?','Maak uw keuze..');
$bSelect->addItem('Ja','baSelect')
->addItem('Nee','bbSelect');
// Vraag 3
$aaSelect = new SelectBox('Wilt u een handschoen met fingerroll?','Maak uw keuze..');
$aaSelect->addItem('Ja','aaaSelect')
->addItem('Nee','aabSelect');
$bbSelect = new SelectBox('Wilt u een handschoen met fingerroll?','Maak uw keuze..');
$bbSelect->addItem('Ja','bbaSelect')
->addItem('Nee','bbbSelect');
$abSelect = new SelectBox('Wilt u een handschoen met fingerroll?','Maak uw keuze..');
$abSelect->addItem('Ja','abaSelect')
->addItem('Nee','abbSelect');
$baSelect = new SelectBox('Wilt u een handschoen met fingerroll?','Maak uw keuze..');
$baSelect->addItem('Ja','baaSelect')
->addItem('Nee','babSelect');
// Vraag 4
$aaaSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$aaaSelect->addItem('Super soft profi foam','aaaaSelect')
->addItem('Soft foam','aaabSelect');
$bbaSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$bbaSelect->addItem('Super soft profi foam','bbaaSelect')
->addItem('Soft foam','bbabSelect');
$abaSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$abaSelect->addItem('Super soft profi foam','abaaSelect')
->addItem('Soft foam','ababSelect');
$baaSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$baaSelect->addItem('Super soft profi foam','baaaSelect')
->addItem('Soft foam','baabSelect');
$aabSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$aabSelect->addItem('Super soft profi foam','aabaSelect')
->addItem('Soft foam','aabbSelect');
$bbbSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$bbbSelect->addItem('Super soft profi foam','bbbaSelect')
->addItem('Soft foam','bbbbSelect');
$abbSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$abbSelect->addItem('Super soft profi foam','abbaSelect')
->addItem('Soft foam','abbbSelect');
$babSelect = new SelectBox('Wilt u super soft profi foam of soft foam?','Maak uw keuze..');
$babSelect->addItem('Super soft profi foam','babaSelect')
->addItem('Soft foam','babbSelect');
// Vraag 5
$aaaaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$aaaaSelect->addItem('Ja','aaaaaSelect')
->addItem('Nee','aaaabSelect');
$aaabSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$aaabSelect->addItem('Ja','bbaaaSelect')
->addItem('Nee','bbaabSelect');
$abaaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$abaaSelect->addItem('Ja','abaaaSelect')
->addItem('Nee','abaabSelect');
$ababSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$ababSelect->addItem('Ja','baaaaSelect')
->addItem('Nee','baaabSelect');
$baaaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$baaaSelect->addItem('Ja','aabaaSelect')
->addItem('Nee','aababSelect');
$baabSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$baabSelect->addItem('Ja','bbbabSelect')
->addItem('Nee','bbbabSelect');
$bbabSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$bbabSelect->addItem('Ja','abbaaSelect')
->addItem('Nee','abbabSelect');
$bbaaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$bbaaSelect->addItem('Ja','babaaSelect')
->addItem('Nee','bababSelect');
$aabaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$aabaSelect->addItem('Ja','aaabaSelect')
->addItem('Nee','aaabbSelect');
$aabbSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$aabbSelect->addItem('Ja','bbabaSelect')
->addItem('Nee','bbabbSelect');
$abbaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$abbaSelect->addItem('Ja','ababaSelect')
->addItem('Nee','ababbSelect');
$abbbSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$abbbSelect->addItem('Ja','baabaSelect')
->addItem('Nee','baabbSelect');
$babaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$babaSelect->addItem('Ja','aabbaSelect')
->addItem('Nee','aaabbSelect');
$babbSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$babbSelect->addItem('Ja','bbbbaSelect')
->addItem('Nee','bbbbbSelect');
$bbbbSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$bbbbSelect->addItem('Ja','abbbaSelect')
->addItem('Nee','abbbbSelect');
$bbbaSelect = new SelectBox('Moet het mogelijk zijn een naam op de handschoen te laten drukken?','Maak uw keuze..');
$bbbaSelect->addItem('Ja','babbaSelect')
->addItem('Nee','babbbSelect');
$aaaaaSelect = "<h1>Thunder</h1> <p>Thunder III</p>";
$selects = array(
'productSelect' => $productSelect,
'aSelect' => $aSelect,
'bSelect' => $bSelect,
'abSelect' => $abSelect,
'baSelect' => $baSelect,
'aaSelect' => $aaSelect,
'bbSelect' => $bbSelect,
'aaaSelect' => $aaaSelect,
'aabSelect' => $aabSelect,
'abaSelect' => $abaSelect,
'abbSelect' => $abbSelect,
'baaSelect' => $baaSelect,
'babSelect' => $babSelect,
'bbbSelect' => $bbbSelect,
'bbaSelect' => $bbaSelect,
'aaaaSelect' => $aaaaSelect,
'aaabSelect' => $aaabSelect,
'abaaSelect' => $abaaSelect,
'ababSelect' => $ababSelect,
'baaaSelect' => $baaaSelect,
'baabSelect' => $baabSelect,
'bbabSelect' => $bbabSelect,
'bbaaSelect' => $bbaaSelect,
'aabaSelect' => $aabaSelect,
'aabbSelect' => $aabbSelect,
'abbaSelect' => $abbaSelect,
'abbbSelect' => $abbbSelect,
'babaSelect' => $babaSelect,
'babbSelect' => $babbSelect,
'bbbbSelect' => $bbbbSelect,
'bbbaSelect' => $bbbaSelect,
'aaaaaSelect' => $aaaaaSelect
);
if(array_key_exists($_GET['key'],$selects)){
header('Content-type: application/json');
echo $selects[$_GET['key']]->toJSON();
}
else{
header("HTTP/1.0 404 Not Found");
header('Status: 404 Not Found');
}
?>
Zoals u kunt zien zijn er heel veel mogelijkheden, bij deze mijn excuses voor de lange code. Aan het einde zal $aaaaaSelect een product moeten laten zien, hier heb ik een html code voor een H1 titel en een P tag in gezet. Deze laat hij echter niet zien. U kunt het uitproberen op www.inspirad.com/goalkeepersNL door overal de bovenste keuze te maken. Dan zal u uitkomen bij de $aaaaaSelect variable.
Heeft iemand een oplossing, doe ik iets fout of zou ik het op een geheel andere weg moeten uitvoeren om die data naar mijn html te sturen?
Alvast bedankt voor uw tijd,
Joran den Houting
Toevoeging op 12/04/2012 10:35:32:
Eventueel uiteindelijk doorsturen naar bijvoorbeeld product.php?id=aaaaa zou ook perfect zijn. Misschien dat dit makkelijker zal zijn..? Iemand een idee hoe ik dat zou kunnen schrijven?
ThunderIII Super Soft Profi Foam
art.nr. : 480208
maat : 8 - 8,5 - 9 - 9,5 - 10 - 10,5 - 11
€ 69,95
alleen kan ik dan geen option meer kiezen? maar ik snap je uitleg ook niet echt.. je legt het een beetje verward uit. ik denk dat je iets te lang achter je neus hebt zitten krabben maar dat maakt niet uit.
stel: ik heb alle vragen beantwoord, ik krijg een product, en wat moet er nu mee gebeuren?
Ik zou niet op deze manier verder doen.
Je ziet zelf ook dat je veel te veel aan het herhalen bent.
Het kan niet de bedoeling zijn dat je een zelfde vraag, met zelfde opties, 16 keer moet copy/pasten, met enkel een referentie die verschilt.
Ik zou verwachten dat je ergens een array bijboudt met de gekozen opties, of zo.
En Kris je hebt helemaal gelijk hoor, dat is hoe ik het normaal in PHP zou doen, maar gezien dit in combo is met json en jquery weet ik me echt geen raad meer..