Page 1 of 1

Checkboxen en PHP

Posted: 13 Jan 2004, 11:58
by JJapie
Ik heb het volgende formuliertje gemaakt:

Code: Select all

<form id="frmZoek" action="<?php echo $PHP_SELF; ?>" method="post">
    <input id="optZoek1" name="optZoek1" value="optZoek" type="radio" checked="checked" /> Zoek in alle categorieën<br />
    <input id="optZoek2" name="optZoek2" value="optZoek" type="radio" /> Zoek in gespecificeerde categorieën<br />
		<blockquote>
		<input type="checkbox" id="cat_1" name="categorie[]" value="actualiteiten" onclick="document.getElementById('optZoek2').setAttribute('checked',true);" /> Actualiteiten<br />
		<input type="checkbox" id="cat_2" name="categorie[]" value="expertisecentrum" onclick="document.getElementById('optZoek2').setAttribute('checked',true);" /> Over het Expertisecentrum<br />
		<input type="checkbox" id="cat_3" name="categorie[]" value="faculteiten" onclick="document.getElementById('optZoek2').setAttribute('checked',true);" /> Faculteiten<br />
		<input type="checkbox" id="cat_4" name="categorie[]" value="didactiek" onclick="document.getElementById('optZoek2').setAttribute('checked',true);" /> Digitale Didactiek<br />
		<input type="checkbox" id="cat_5" name="categorie[]" value="bronnen" onclick="document.getElementById('optZoek2').setAttribute('checked',true);" /> Bronnen en Publicaties<br />
		<input type="checkbox" id="cat_6" name="categorie[]" value="faq" onclick="document.getElementById('optZoek2').setAttribute('checked',true);" /> Veel Gestelde Vragen
		</blockquote>	
	Zoeken naar: <input name="trefwoord" type="text" /> <input type="button" value="Zoeken" onclick="checkInput();" />
</form>
Als het goed is zouden de waardes van de checkboxen nu in een array moeten staan, maar als ik dan een

Code: Select all

print_r($_POST);
doe, dan blijkt dat alleen de waarde van de laatst aangevinkte checkbox wordt meegegeven...

Zie ik nou iets over het hoofd ofzo :?

Posted: 13 Jan 2004, 12:47
by blimmel
je gebruikt getElementById('optZoek2'), maar gebruikt id's als cat_1, cat_2... klopt dat?

ok... dat klopt

Posted: 13 Jan 2004, 12:47
by venomous
Je vergeet dat je door je elementen moet lopen.

Posted: 13 Jan 2004, 12:54
by blimmel
venomous wrote:Je vergeet dat je door je elementen moet lopen.

Code: Select all

while($cat = each($categorie))
{
    $c = $cat["value"];
    //doe iets met $c
}
of zo

Posted: 13 Jan 2004, 13:31
by JJapie
blimmel wrote:
venomous wrote:Je vergeet dat je door je elementen moet lopen.

Code: Select all

while($cat = each($categorie))
{
    $c = $cat["value"];
    //doe iets met $c
}
of zo
Punt voor jou & veno, tnx ^:^

.edit: problem solved..

Posted: 14 Jan 2004, 19:21
by JJapie
Een volgend probleem:
Mijn MySQL-query is op een of andere manier nogal onnauwkeurig geworden..
Query bij zoeken op 'm00h' met alle checkboxes aangevinkt:

Code: Select all

SELECT * FROM content WHERE `inhoud` LIKE '%m00h%' AND `categorie` = 'actualiteiten' OR `categorie` = 'expertisecentrum' OR `categorie` = 'faculteiten' OR `categorie` = 'didactiek' OR `categorie` = 'bronnen' OR `categorie` = 'faq' ORDER BY `titel` ASC LIMIT 0 , 1 
Sinds ik die categorien heb toegevoegd vindt het script ook iets als ik op bijv. m00h zoek, terwijl het hele woord 'm00h' niet in de DB voorkomt..

Wat er wel in de db staat is het volgende:

Image

Ik heb het idee dat ik weer iets vergeten ben ofzo :?

Posted: 14 Jan 2004, 19:27
by madman
Volgens mij moet je nog ff haakjes zetten om al je or's

Posted: 14 Jan 2004, 19:28
by JJapie
madman wrote:Volgens mij moet je nog ff haakjes zetten om al je or's
Als in:

Code: Select all

SELECT * FROM content WHERE `inhoud` LIKE '%m00h%' AND (`categorie` = 'actualiteiten') OR (`categorie` = 'expertisecentrum') OR (`categorie` = 'faculteiten') OR (`categorie` = 'didactiek') OR (`categorie` = 'bronnen') OR (`categorie` = 'faq') ORDER BY `titel` ASC LIMIT 0 , 1 
?

Dat heb ik al geprobeerd, werkt niet helaas...

Posted: 14 Jan 2004, 19:29
by madman
Nee:

Code: Select all

SELECT * FROM content WHERE `inhoud` LIKE '%m00h%' AND (`categorie` = 'actualiteiten' OR `categorie` = 'expertisecentrum' OR `categorie` = 'faculteiten' OR `categorie` = 'didactiek' OR `categorie` = 'bronnen' OR `categorie` = 'faq') ORDER BY `titel` ASC LIMIT 0 , 1 

Posted: 14 Jan 2004, 19:34
by madman
En misschien kan je voor die categorie nog beter een "where .. in"-clause gebruiken..

Posted: 14 Jan 2004, 19:35
by JJapie
madman wrote:Nee:

Code: Select all

SELECT * FROM content WHERE `inhoud` LIKE '%m00h%' AND (`categorie` = 'actualiteiten' OR `categorie` = 'expertisecentrum' OR `categorie` = 'faculteiten' OR `categorie` = 'didactiek' OR `categorie` = 'bronnen' OR `categorie` = 'faq') ORDER BY `titel` ASC LIMIT 0 , 1 
Hmm... best logisch eigenlijk :P
Maar dit is goed idd :)

Posted: 14 Jan 2004, 19:36
by JJapie
madman wrote:En misschien kan je voor die categorie nog beter een "where .. in"-clause gebruiken..
Ga ik daar even naar zoeken :)