Database filteren door radio button én select list
Ik maak een applicatie waar er records gefilterd worden uit een databank op basis van
1) de waarde van een radio button
2) de waarde van een select list (dropdown)
Wat de applicatie nu doet is filteren op basis van de dropdown list, maar wanneer ik er een filter met radio buttons in wil verwerken, gata het niet meer. Dit is wat ik tot nu toe heb
Dit zijn de 2 formulieren op de eerste pagina:
<div id="keuze">
<form method="post" action="filter.php">
<input type="radio" name="keuze" value="Persoonlijk"/>Persoonlijke hulp
<input type="radio" name="keuze" value="Telefoon" style="margin-left:100px"/>Telefonische hulp
<input type="radio" name="keuze" value="chat" style="margin-left:120px"/>Chat
<input type="radio" name="keuze" value="mnu" style="margin-left:160px"/>Maakt niet uit
</form>
</div>
<div id="comments">
<form method="post" action="filter.php">
<select name="selectlist">
<option value="zelfmoord">Zelfmoord</option>
<option value="ouders">Ouders</option>
<option value="school">School</option>
<option value="drugs">Drugs</option>
<option value="alcohol">Alcohol</option>
<option value="liefde">Liefde</option>
<option value="zwanger">Zwanger</option>
</select>
<input type="submit" id="sendbtn" value="Verzend" class="sendbtn">
</form>
dit is de php code op de 2de pagina:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
include ('connection.php');
session_start();
$variable = $_POST['selectlist'];
$keuze = $_POST['keuze'];
?>
include ('connection.php');
session_start();
$variable = $_POST['selectlist'];
$keuze = $_POST['keuze'];
?>
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
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
<?php
if($variable == 'drugs' && $keuze =='Persoonlijk'){
$result = mysql_query("SELECT OrganisatieNaam,BegeleiderTel,BegeleiderMail,Beschrijving,website FROM tblorganisaties WHERE `drugs`=1 AND 'Persoonlijk'=1;");
echo "<table border='1'>
<tr>
<th>Organisatie</th>
<th>Tel</th>
<th>Email</th>
<th>Website</th>
<th>Beschrijving</th>
</tr>";
while ($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['OrganisatieNaam'] . "</td>";
echo "<td>" . $row['BegeleiderTel'] . "</td>";
echo "<td>" . $row['BegeleiderMail'] . "</td>";
echo "<td> <a href='".$row['website']."'>" . $row['website'] . "</a></td>";
echo "<td>" . $row['Beschrijving'] . "</td>";
echo "</tr>";
}
echo "</table>";
}
Alvast bedankt voor jullie hulp
[size=xsmall][i]Toevoeging op 15/06/2011 13:34:48:[/i][/size]
als foutmelding krijg ik undefined index voor zowel $keuze als $variable
if($variable == 'drugs' && $keuze =='Persoonlijk'){
$result = mysql_query("SELECT OrganisatieNaam,BegeleiderTel,BegeleiderMail,Beschrijving,website FROM tblorganisaties WHERE `drugs`=1 AND 'Persoonlijk'=1;");
echo "<table border='1'>
<tr>
<th>Organisatie</th>
<th>Tel</th>
<th>Email</th>
<th>Website</th>
<th>Beschrijving</th>
</tr>";
while ($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['OrganisatieNaam'] . "</td>";
echo "<td>" . $row['BegeleiderTel'] . "</td>";
echo "<td>" . $row['BegeleiderMail'] . "</td>";
echo "<td> <a href='".$row['website']."'>" . $row['website'] . "</a></td>";
echo "<td>" . $row['Beschrijving'] . "</td>";
echo "</tr>";
}
echo "</table>";
}
Alvast bedankt voor jullie hulp
[size=xsmall][i]Toevoeging op 15/06/2011 13:34:48:[/i][/size]
als foutmelding krijg ik undefined index voor zowel $keuze als $variable
Je hebt twee formulieren. De eerste heeft geen submitknop dus die zal je nooit kunnen verzenden. Waarom maak je daar niet één formulier van?
het is wél de bedoeling dat de verzendknop de waarde van de radio button meegeeft
Je kan toch altijd maar één formulier posten.
Toevoeging op 15/06/2011 14:02:07:
hmm ik heb er nu 1 formulier van gemaakt en ik krijg geen fouten meer, MAAR als ik een radio button aanduid, geeft hij een lege tabel
de query is juist, want ik heb hem eerst getest:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
if($variable == 'drugs' && $keuze =='chat'){
$result = mysql_query("SELECT OrganisatieNaam,BegeleiderTel,BegeleiderMail,Beschrijving,website FROM tblorganisaties WHERE `drugs`=1 AND 'chat'=1");
echo "<table border='1'>
<tr>
<th>Organisatie</th>
<th>Tel</th>
<th>Email</th>
<th>Website</th>
<th>Beschrijving</th>
</tr>";
while ($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['OrganisatieNaam'] . "</td>";
echo "<td>" . $row['BegeleiderTel'] . "</td>";
echo "<td>" . $row['BegeleiderMail'] . "</td>";
echo "<td> <a href='".$row['website']."'>" . $row['website'] . "</a></td>";
echo "<td>" . $row['Beschrijving'] . "</td>";
echo "</tr>";
}
echo "</table>";
}
?>
if($variable == 'drugs' && $keuze =='chat'){
$result = mysql_query("SELECT OrganisatieNaam,BegeleiderTel,BegeleiderMail,Beschrijving,website FROM tblorganisaties WHERE `drugs`=1 AND 'chat'=1");
echo "<table border='1'>
<tr>
<th>Organisatie</th>
<th>Tel</th>
<th>Email</th>
<th>Website</th>
<th>Beschrijving</th>
</tr>";
while ($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['OrganisatieNaam'] . "</td>";
echo "<td>" . $row['BegeleiderTel'] . "</td>";
echo "<td>" . $row['BegeleiderMail'] . "</td>";
echo "<td> <a href='".$row['website']."'>" . $row['website'] . "</a></td>";
echo "<td>" . $row['Beschrijving'] . "</td>";
echo "</tr>";
}
echo "</table>";
}
?>
Alleen een paar notes:
- Geen $vars nutteloos copiëren. (regel 5 en 6)
- Check of er gepost is met if($_SERVER['REQUEST_METHOD'] == 'POST')
- Bouw foutafhandeling in.
http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-query-sql/735/
- Geen quotes en backtics om tabelnamen.
WHERE `drugs`=1 AND 'Persoonlijk'=1
- Gebruik bij echo enkele quotes zodat de html valid is met zijn dubbele quotes.
Dus niet echo "<table border='1'>";
Maar echo '<table border="1">';
- Gebruik mysql_fetch_assoc($result)
in plaats van mysql_fetch_array($result).
Gewijzigd op 15/06/2011 14:07:21 door - SanThe -
ik heb ook bovenaan de 2de pagina een echo $keuze; gedaan en de optie die wordt aangeduid wordt wel degelijk meegegeven, dus ik snap niet waarom ik dan geen resultaten krijg
De backtics rond drugs horen daar niet. (Maar dit is niet het probleem)
Bij 'chat'=1 kijk jij of de tekst 'chat', en niet het veld chat, gelijk is aan 1. Om chat horen geen quotes te staan. (Dit is het probleem)
Gewijzigd op 15/06/2011 14:22:38 door - SanThe -
ik heb voor de quotes van chat dezelfde gebruikt als die van drugs
toch heel fel bedankt voor de hulp!!
Shana vermeiren op 15/06/2011 14:16:13:
oooh joepie! het is gelukt!
ik heb voor de quotes van chat dezelfde gebruikt als die van drugs
ik heb voor de quotes van chat dezelfde gebruikt als die van drugs
Niet doen. Gewoon GEEN quotes (= backtics) is het beste.
Gewijzigd op 15/06/2011 14:22:06 door - SanThe -