Zoek menu maken met opties
Ik ben bezig met mijn website en nu heb ik een zoek menu gemaakt met de volgende 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<b>Zoek in de database:</b>
<form method="POST" action="programmas.php">
<select type="text" name="zoeksoort">
<option value="0" <?php echo ((isset($_POST['zoeksoort'])) and ($_POST['zoeksoort'] == "0")) ? 'selected' : '' ?>>Leeg</option>
<option value="1" <?php echo ((isset($_POST['zoeksoort'])) and ($_POST['zoeksoort'] == "1")) ? 'selected' : '' ?>>Applicaties</option>
<option value="2" <?php echo ((isset($_POST['zoeksoort'])) and ($_POST['zoeksoort'] == "2")) ? 'selected' : '' ?>>Tools</option>
</select><br>
<select type="text" name="zoekgroep">
<option value="0" <?php echo ((isset($_POST['zoekgroep'])) and ($_POST['zoekgroep'] == "0")) ? 'selected' : '' ?>>Leeg</option>
<option value="12" <?php echo ((isset($_POST['zoekgroep'])) and ($_POST['zoekgroep'] == "12")) ? 'selected' : '' ?>>groep 1 en 2</option>
<option value="9" <?php echo ((isset($_POST['zoekgroep'])) and ($_POST['zoekgroep'] == "9")) ? 'selected' : '' ?>>Alle groepen</option>
</select><br>
<select type="text" name="zoekvak">
<option value="0" <?php echo ((isset($_POST['zoekvak'])) and ($_POST['zoekvak'] == "0")) ? 'selected' : '' ?>>Leeg</option>
<option value="rekenen" <?php echo ((isset($_POST['zoekvak'])) and ($_POST['zoekvak'] == "rekenen")) ? 'selected' : '' ?>>Rekenen</option>
<option value="extra" <?php echo ((isset($_POST['zoekvak'])) and ($_POST['zoekvak'] == "extra")) ? 'selected' : '' ?>>Extra</option>
</select>
<br>
<center><input class="myButton" type="submit" name="submit" value="Zoeken"></center>
</form>
</div>
<form method="POST" action="programmas.php">
<select type="text" name="zoeksoort">
<option value="0" <?php echo ((isset($_POST['zoeksoort'])) and ($_POST['zoeksoort'] == "0")) ? 'selected' : '' ?>>Leeg</option>
<option value="1" <?php echo ((isset($_POST['zoeksoort'])) and ($_POST['zoeksoort'] == "1")) ? 'selected' : '' ?>>Applicaties</option>
<option value="2" <?php echo ((isset($_POST['zoeksoort'])) and ($_POST['zoeksoort'] == "2")) ? 'selected' : '' ?>>Tools</option>
</select><br>
<select type="text" name="zoekgroep">
<option value="0" <?php echo ((isset($_POST['zoekgroep'])) and ($_POST['zoekgroep'] == "0")) ? 'selected' : '' ?>>Leeg</option>
<option value="12" <?php echo ((isset($_POST['zoekgroep'])) and ($_POST['zoekgroep'] == "12")) ? 'selected' : '' ?>>groep 1 en 2</option>
<option value="9" <?php echo ((isset($_POST['zoekgroep'])) and ($_POST['zoekgroep'] == "9")) ? 'selected' : '' ?>>Alle groepen</option>
</select><br>
<select type="text" name="zoekvak">
<option value="0" <?php echo ((isset($_POST['zoekvak'])) and ($_POST['zoekvak'] == "0")) ? 'selected' : '' ?>>Leeg</option>
<option value="rekenen" <?php echo ((isset($_POST['zoekvak'])) and ($_POST['zoekvak'] == "rekenen")) ? 'selected' : '' ?>>Rekenen</option>
<option value="extra" <?php echo ((isset($_POST['zoekvak'])) and ($_POST['zoekvak'] == "extra")) ? 'selected' : '' ?>>Extra</option>
</select>
<br>
<center><input class="myButton" type="submit" name="submit" value="Zoeken"></center>
</form>
</div>
Dit werkt opzich prima, maar ik zou mijn menu graag anders willen hebben. Ik zou graag willen hebben dat je alleen optie 1 ziet; Tools, applicaties. Als iemand dan Tools aanklikt moeten alle tools gewoon zichtbaar worden. Maar als je applicaties aanklikt moet het volgende menu der onder komen:
Groep 1/2, groep 3/4, groep 5/6 groep 7/8.
ALs je dan op groep 1/2 klikt moet er onder komen
rekenen, taal
Als je op groep 3/4 klikt moet er onder komen
rekenen, taal, schrijven, engels
En dat voor alle klassen. Het zoekmenu moet zich dus aanpassen aan de gegeven optie. Weet iemand hoe ik dit kan doen?
Groetjes,
Dennis
ps: De volledige code voor het zoeken en weergeven is:
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
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
<?
$soort1 = $_POST['zoeksoort'];
$groep1 = $_POST['zoekgroep'];
$vak1 = $_POST['zoekvak'];
?>
<b>Zoek in de database:</b>
<form method="POST" action="programmas.php">
<select type="text" name="zoeksoort">
<option value="0" <?php echo ((isset($_POST['zoeksoort'])) and ($_POST['zoeksoort'] == "0")) ? 'selected' : '' ?>>Leeg</option>
<option value="1" <?php echo ((isset($_POST['zoeksoort'])) and ($_POST['zoeksoort'] == "1")) ? 'selected' : '' ?>>Applicaties</option>
<option value="2" <?php echo ((isset($_POST['zoeksoort'])) and ($_POST['zoeksoort'] == "2")) ? 'selected' : '' ?>>Tools</option>
</select><br>
<select type="text" name="zoekgroep">
<option value="0" <?php echo ((isset($_POST['zoekgroep'])) and ($_POST['zoekgroep'] == "0")) ? 'selected' : '' ?>>Leeg</option>
<option value="12" <?php echo ((isset($_POST['zoekgroep'])) and ($_POST['zoekgroep'] == "12")) ? 'selected' : '' ?>>groep 1 en 2</option>
<option value="9" <?php echo ((isset($_POST['zoekgroep'])) and ($_POST['zoekgroep'] == "9")) ? 'selected' : '' ?>>Alle groepen</option>
</select><br>
<select type="text" name="zoekvak">
<option value="0" <?php echo ((isset($_POST['zoekvak'])) and ($_POST['zoekvak'] == "0")) ? 'selected' : '' ?>>Leeg</option>
<option value="rekenen" <?php echo ((isset($_POST['zoekvak'])) and ($_POST['zoekvak'] == "rekenen")) ? 'selected' : '' ?>>Rekenen</option>
<option value="extra" <?php echo ((isset($_POST['zoekvak'])) and ($_POST['zoekvak'] == "extra")) ? 'selected' : '' ?>>Extra</option>
</select>
<br>
<center><input class="myButton" type="submit" name="submit" value="Zoeken"></center>
</form>
</div>
<div id="contentcolumn">
<b>Programma's:</b><br><br>
Gebruik de zoekfunctie om de juiste app of tool te vinden. De applicaties zijn ook af te spelen op het digibord.
<br>
<?
//-- natuurlijk moet er eerst een connectie met de database worden gemaakt:
if (!@mysql_select_db("my_dennisvanduin", @mysql_connect("localhost", "programmas", "")))
{
echo "Er kan geen database connectie gemaakt worden.";
exit();
}
//-- $_POST['zoekterm'] is de naam van het zoekveld in het formulier wat we
//-- hebben gemaakt in het vorige 'hoofdstuk'. Dit is dus de SQL code:
$sql = "SELECT img, link, naam FROM `programmas` WHERE `soort` = '$soort1' AND `groep` = '$groep1'"; /* AND `vak` = '$vak1'"; */
//-- voer de SQL code uit en zet dit in een variabele zodat we zometeen kunnen
//-- kijken of er een resultaat is
$res = mysql_query($sql);
//-- bekijk nu of er een resultaat is, of het zoekwoord dus gevonden is of niet
if (mysql_num_rows($res) >= 1)
{
//-- er is een resultaat gevonden, toon de resultaten via een while () loop
while ($row = mysql_fetch_array($res))
{
?>
<?php
echo '<table cellspacing="0" display:block; style="float:left; margin-right:4px;" width="32%";>
<tr bgcolor="#FFEBCC"><th>'.htmlspecialchars($row['naam']).'</th></tr>
<tr bgcolor="#FFF3E0"><th><br><A HREF="'.htmlspecialchars($row['link']).'"><img src="' .htmlspecialchars($row['img']). '"border=1; width=90%;></A>
</th></tr>
</table> '
?>
<!-- And so on-->
<?php
}
?>
<?php
}
//-- als er geen resultaat is gevonden, dus als het zoekwoord niet gevonden is:
else
{
echo '<p>Er zijn geen applicaties of tools gevonden.';
}
?>
$soort1 = $_POST['zoeksoort'];
$groep1 = $_POST['zoekgroep'];
$vak1 = $_POST['zoekvak'];
?>
<b>Zoek in de database:</b>
<form method="POST" action="programmas.php">
<select type="text" name="zoeksoort">
<option value="0" <?php echo ((isset($_POST['zoeksoort'])) and ($_POST['zoeksoort'] == "0")) ? 'selected' : '' ?>>Leeg</option>
<option value="1" <?php echo ((isset($_POST['zoeksoort'])) and ($_POST['zoeksoort'] == "1")) ? 'selected' : '' ?>>Applicaties</option>
<option value="2" <?php echo ((isset($_POST['zoeksoort'])) and ($_POST['zoeksoort'] == "2")) ? 'selected' : '' ?>>Tools</option>
</select><br>
<select type="text" name="zoekgroep">
<option value="0" <?php echo ((isset($_POST['zoekgroep'])) and ($_POST['zoekgroep'] == "0")) ? 'selected' : '' ?>>Leeg</option>
<option value="12" <?php echo ((isset($_POST['zoekgroep'])) and ($_POST['zoekgroep'] == "12")) ? 'selected' : '' ?>>groep 1 en 2</option>
<option value="9" <?php echo ((isset($_POST['zoekgroep'])) and ($_POST['zoekgroep'] == "9")) ? 'selected' : '' ?>>Alle groepen</option>
</select><br>
<select type="text" name="zoekvak">
<option value="0" <?php echo ((isset($_POST['zoekvak'])) and ($_POST['zoekvak'] == "0")) ? 'selected' : '' ?>>Leeg</option>
<option value="rekenen" <?php echo ((isset($_POST['zoekvak'])) and ($_POST['zoekvak'] == "rekenen")) ? 'selected' : '' ?>>Rekenen</option>
<option value="extra" <?php echo ((isset($_POST['zoekvak'])) and ($_POST['zoekvak'] == "extra")) ? 'selected' : '' ?>>Extra</option>
</select>
<br>
<center><input class="myButton" type="submit" name="submit" value="Zoeken"></center>
</form>
</div>
<div id="contentcolumn">
<b>Programma's:</b><br><br>
Gebruik de zoekfunctie om de juiste app of tool te vinden. De applicaties zijn ook af te spelen op het digibord.
<br>
<?
//-- natuurlijk moet er eerst een connectie met de database worden gemaakt:
if (!@mysql_select_db("my_dennisvanduin", @mysql_connect("localhost", "programmas", "")))
{
echo "Er kan geen database connectie gemaakt worden.";
exit();
}
//-- $_POST['zoekterm'] is de naam van het zoekveld in het formulier wat we
//-- hebben gemaakt in het vorige 'hoofdstuk'. Dit is dus de SQL code:
$sql = "SELECT img, link, naam FROM `programmas` WHERE `soort` = '$soort1' AND `groep` = '$groep1'"; /* AND `vak` = '$vak1'"; */
//-- voer de SQL code uit en zet dit in een variabele zodat we zometeen kunnen
//-- kijken of er een resultaat is
$res = mysql_query($sql);
//-- bekijk nu of er een resultaat is, of het zoekwoord dus gevonden is of niet
if (mysql_num_rows($res) >= 1)
{
//-- er is een resultaat gevonden, toon de resultaten via een while () loop
while ($row = mysql_fetch_array($res))
{
?>
<?php
echo '<table cellspacing="0" display:block; style="float:left; margin-right:4px;" width="32%";>
<tr bgcolor="#FFEBCC"><th>'.htmlspecialchars($row['naam']).'</th></tr>
<tr bgcolor="#FFF3E0"><th><br><A HREF="'.htmlspecialchars($row['link']).'"><img src="' .htmlspecialchars($row['img']). '"border=1; width=90%;></A>
</th></tr>
</table> '
?>
<!-- And so on-->
<?php
}
?>
<?php
}
//-- als er geen resultaat is gevonden, dus als het zoekwoord niet gevonden is:
else
{
echo '<p>Er zijn geen applicaties of tools gevonden.';
}
?>
Groetjes,
Dennis
Je de eerste twee keren roep je php op een oude manier dat moet als onderstaande twee zijn en verder vind ik dat je html met php door elkaar gaat....regel 8 lijkt mij gevaarlijk dus daar blijft een vraagteken bij, als een expert mij zin kan keuren zou ik heel erg fijn vinden.
Stappen die je dan zou uitvoeren:
1. Pagina laden zoals hij nu is, maar dan met enkel opties ingevuld in de eerste dropdown
2. In die pagina een script inbouwen die data ophaalt voor de 2e dropdown.
Deze data kun je ophalen met een ajax call vanuit een extern script.
Je geeft met ajax dan de ingevulde waarde mee van de 1e dropdown.
3. In het externe script maak je functies die je kunt aanroepen.
Het lijkt een beetje op de autocomplete van Jquery: https://jqueryui.com/autocomplete/#remote
Als je dit voor elkaar kunt krijgen op je server, kun je door middel van een paar simpele aanpassingen ook een Ajax call doen.
Meer info kun je hier vinden voor Ajax:
http://api.jquery.com/jquery.ajax/
Hier een voorbeeldje van ajax in combinatie met een resultaat in data.php als JSON encoded
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
$.ajax({
url: 'data.php',
data: "voorwaarde1=test&voorwaarde2=test2",
dataType: 'json',
success: function(data)
{
// De data in de console weergeven
console.log(data);
// Je kunt hier zelf doen wat je wilt met je data
}
});
url: 'data.php',
data: "voorwaarde1=test&voorwaarde2=test2",
dataType: 'json',
success: function(data)
{
// De data in de console weergeven
console.log(data);
// Je kunt hier zelf doen wat je wilt met je data
}
});
Gewijzigd op 15/12/2015 06:55:24 door Peter K