Multiple checkbox antwoorden in een function
Ik heb een function gemaakt die checkboxes genereert aan de hand van het aantal rijen in een database met natuurlijk als value de waarde van die rij.
Het probleem is dat ik graag de keuzes wil onthouden als iemand die keuzes maakt.
hier worden de checkboxes gegenereerd
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$query_merk = mysql_query("SELECT merk FROM producten WHERE merk!=''");
while ($row = mysql_fetch_row($query_merk))
{
$code .= "<input type='checkbox' name='".$row[0]."'";
$code .= "value='".$row[0]."'>".$row[0]."<br>";
}
return $code;
?>
$query_merk = mysql_query("SELECT merk FROM producten WHERE merk!=''");
while ($row = mysql_fetch_row($query_merk))
{
$code .= "<input type='checkbox' name='".$row[0]."'";
$code .= "value='".$row[0]."'>".$row[0]."<br>";
}
return $code;
?>
wat het grote probleem is als de database word aangevuld dat de checkboxes ook weer moeten gegenereerd worden. In een functie moet je tussen de () de waardes invoeren die worden gebruikt in de functie. Ik kan moeilijk elke minuut tussen die () steeds weer een variabele bijschrijven.
de code die in de functie moet komen is
het probleem ligt dus in die haakjes.
heeft iemand een oplossing hiervoor?
alvast bedankt!
Daar heb je toch arrays voor?
kun je een array wel in een functie meegeven?
Zelfs dat zou kunnen, maar uiteraard bedoel ik het andersom. Je geeft de array mee in de functie.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<table class='zoekmachine'>
<tr>
<td class='sorteeropties'>
<form action='index.php' method='GET'><?php
if (isset($GET['zoek']))
{
for ($i=0;$i<count($_GET['provincie']);$i++)
{
$provincie[$i] = $_GET['provincie'][$i];
}
}
else
{
$provincie = '';
}
$function->sorteeropties($provincie);
?></form>
</td>
<td class='zoekresultaten'>
</td>
</tr>
</table>
<tr>
<td class='sorteeropties'>
<form action='index.php' method='GET'><?php
if (isset($GET['zoek']))
{
for ($i=0;$i<count($_GET['provincie']);$i++)
{
$provincie[$i] = $_GET['provincie'][$i];
}
}
else
{
$provincie = '';
}
$function->sorteeropties($provincie);
?></form>
</td>
<td class='zoekresultaten'>
</td>
</tr>
</table>
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
public function sorteeropties($provincie)
{ // connectie maken met de database
$this->Connect('localhost','root','','test');
$query = mysql_query("SELECT provincie FROM sorteeropties WHERE provincie!=''");
while ($row = mysql_fetch_row($query))
{
$this->code .= "<input type='checkbox' name='provincie'";
if ($provincie!='')
{
for ($i=0;$i<9;$i++)
{
if ($provincie[$i]==$row[0])
{
$this->code .= " checked='true' ";
}
}
}
$this->code .= "value='".$row[0]."'>".$row[0]."<br>";
}
return $this->code;
}
?>
public function sorteeropties($provincie)
{ // connectie maken met de database
$this->Connect('localhost','root','','test');
$query = mysql_query("SELECT provincie FROM sorteeropties WHERE provincie!=''");
while ($row = mysql_fetch_row($query))
{
$this->code .= "<input type='checkbox' name='provincie'";
if ($provincie!='')
{
for ($i=0;$i<9;$i++)
{
if ($provincie[$i]==$row[0])
{
$this->code .= " checked='true' ";
}
}
}
$this->code .= "value='".$row[0]."'>".$row[0]."<br>";
}
return $this->code;
}
?>
Gewijzigd op 14/05/2012 12:05:25 door Albert de Wit
print_r( $provincie )
aan het begin van die functie, om te controleren wat er in de array zit.
dan krijg ik niks terug. Ik zei al eerder dat ik niks meer terug kreeg alsof ik de functie niet aanroepte maar ik krijg wel een zooi error msges
Dan is het dus zaak om die error messages een voor een op te lossen.
dat heb ik al gedaan door die loops weg te halen maar nog steeds krijg ik niks terug
Eerst gaat het over producten en merken, en nu opeens over provincies? Vreemd.
Met de info die je elke keer geeft kan ik van afstand in elk geval bijzonder weinig. Dus of probeer zelf iets (controleer bijvoorbeeld per regel of je een string kan echoen naar het scherm zodat je kan zien waar het vastloopt), of geef meer bruikbare info.
Ik gaf eerst een voorbeeld omdat ik het daar eerst mee testte.
Verder heb ik bovenaan de functie een return gezet maar omdat dat niks oplevert levert de rest ook niks op.
<input type='checkbox' name='provincie'.....
Dus als er twee aangevinkt worden pakt ie altijd de eerste/laatste. (Doorhalen wat niet van toepassing is).
Gewijzigd op 14/05/2012 13:22:42 door - SanThe -
ja is dat verkeerd?
Zie mijn edit.
Code (php)
Het word in een array gezet
- SanThe - op 14/05/2012 13:20:57:
<input type='checkbox' name='provincie'.....
In dit geval heeft, indien er één of meerdere zijn aangevinkt, $_GET['provincie'] slechts één waarde. Wil je een array dan doe je zo:
<input type='checkbox' name='provincie[]'.....
Hij hoort een rij checkboxes met achter elke een provincie te zetten
Ik snap nog steeds niet wat je nou precies wilt maken.