Hallo allemaal,
Ik ben bezig met een script waarbij er een stukje ingebouwd moet worden dat ik als volgt in gedachte heb:
Gebruiker vinkt meerdere checkboxes aan, dat lukt me wel, die checkboxes, maar hoe krijg ik die als volgt in de database:
Checkboxes die aangevinkt zijn: 1, 2, 4 en 6. Nu wil ik dat de waardes van die checkboxes in 1 veld komen in de database, en niet in allemaal aparte velden. Dus in het desbetreffende veld komt dan bijvoorbeeld:
1 2 4 6
Nu is mijn vraag, hoe doe ik dit?
Ik hoop dat jullie me een beetje kunnen begrijpen, het was een beetje lastig uit te leggen.
In ieder geval alvast bedankt voor jullie tijd!
Gr.
Jos
- Resultaten meerdere checkboxes verwerken
-
13-06-2011, 10:47 #1
- Berichten
- 943
- Lid sinds
- 15 Jaar
Resultaten meerdere checkboxes verwerken
-
-
13-06-2011, 10:53 #2
- Berichten
- 658
- Lid sinds
- 18 Jaar
Re: Resultaten meerdere checkboxes verwerken
Je zou het binair kunnen doen.
1 wel, 2 wel, 3 niet, 4 wel, 5 niet, 6 wel = 1*1+2*1+4*0+8*1+16*0+32*1=43
Terugrekenen:
Grootste macht van 2 die nog in 43 past is 2^5 --> 6 wel
Restant is 11, grootste macht van 2 die daar nog in past is 2^3 --> 4 wel
Restant is 3, grootste macht van 2 die daar nog in past is 2^1 --> 2 wel
Restant is 1, grootste macht van 1 die daar nog in past is 2^0 --> 1 wel
Dus 2^i representeert checkbox i+1
Voordeel is dat je zo ook in je database kan zoeken naar alle rijen die 4 hebben aangekruist:
SELECT * FROM rijen WHERE ROUND(checkboxen-POW(2,3)) = checkboxen-POW(2,3)
Hallo allemaal,
Ik ben bezig met een script waarbij er een stukje ingebouwd moet worden dat ik als volgt in gedachte heb:
Gebruiker vinkt meerdere checkboxes aan, dat lukt me wel, die checkboxes, maar hoe krijg ik die als volgt in de database:
Checkboxes die aangevinkt zijn: 1, 2, 4 en 6. Nu wil ik dat de waardes van die checkboxes in 1 veld komen in de database, en niet in allemaal aparte velden. Dus in het desbetreffende veld komt dan bijvoorbeeld:
1 2 4 6
Nu is mijn vraag, hoe doe ik dit?
Ik hoop dat jullie me een beetje kunnen begrijpen, het was een beetje lastig uit te leggen.
In ieder geval alvast bedankt voor jullie tijd!
Gr.
Jos
-
13-06-2011, 10:59 #3
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: Resultaten meerdere checkboxes verwerken
Ligt eraan hoe je ze wilt gebruiken bui het uitlezen. Je kunt ze ook in een array gooien en dan serialize() gebruiken. Dan krijg je een string die je via unserialize() weer kunt uitlezen om de array te krijgen.
-
13-06-2011, 11:07 #4
- Berichten
- 943
- Lid sinds
- 15 Jaar
Re: Resultaten meerdere checkboxes verwerken
Ik wil ze later gewoon uitlezen en dan een komma tussen de verschillende resultaten zetten. Maar hoe krijg ik de aangevinkte checkboxes (de waardes dan) in een array zodat ik die in de database kan zetten? Het betreft geen resultaten met cijfers, het is enkel tekst.
Alvast bedankt voor de reacties!
Gr.
Jos
-
13-06-2011, 11:09 #5
- Berichten
- 205
- Lid sinds
- 17 Jaar
Re: Resultaten meerdere checkboxes verwerken
<input type="checkbox" name="arraynaam[]" value="item1" />
etc. etc.
Vervolgens kun je via een foreach loopje in php gewoon achterhalen welke aangevinkt zijn en deze dan in een database zetten.
-
13-06-2011, 11:10 #6
- Berichten
- 943
- Lid sinds
- 15 Jaar
Re: Resultaten meerdere checkboxes verwerken
Heeft u misschien een voorbeeldje hoe ik dan zou kunnen doen?
Gr.
Jos
-
13-06-2011, 11:32 #7
- Berichten
- 751
- Lid sinds
- 15 Jaar
Re: Resultaten meerdere checkboxes verwerken
HTML:
Code:<input type="checkbox" name="optie[]" value="1" /> Optie 1 <input type="checkbox" name="optie[]" value="2" /> Optie 2 <input type="checkbox" name="optie[]" value="3" /> Optie 3
Code:if(isset($_POST['optie'])) { $optie = ''; foreach($_POST['optie'] AS $optie => $value){ $optie .= $value.','; } } // $optie kun je nu dus in de db gooien :)
-
13-06-2011, 12:09 #8
- Berichten
- 943
- Lid sinds
- 15 Jaar
Re: Resultaten meerdere checkboxes verwerken
Ah super, dankjewel! Ik had nu ook een oplossing gevonden met array_push();, maar dit is een stuk makkelijker, dankjewel!
EDIT:
Werkt toch niet helemaal goed, kijk maar als je wilt:
http://www.pasteacode.com/bso/array_test.php
Hele pagina:
PHP Code:
<?php
echo'<form method="post">';
echo'Test1:<input type="checkbox" name="optie[]" value="Test1" /><br />';
echo'Test2:<input type="checkbox" name="optie[]" value="Test2" /><br />';
echo'Test3:<input type="checkbox" name="optie[]" value="Test3" /><br />';
echo'<input type="submit" value="Test!" />';
echo'</form>';
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if(isset($_POST['optie'])) {
$optie = '';
foreach($_POST['optie'] AS $optie => $value){
$optie .= $value.',';
}
echo $optie;
}
}
?>Laatst aangepast door Jos van Marrewijk : 13-06-2011 om 12:25
-
13-06-2011, 12:27 #9
- Berichten
- 751
- Lid sinds
- 15 Jaar
Re: Resultaten meerdere checkboxes verwerken
@Jos
Slordig typfoutje van me! Heb $optie twee keer gedefineerd.
Verander:
Code:foreach($_POST['optie'] AS $optie => $value){
Code:foreach($_POST['optie'] AS $option => $value){
-
13-06-2011, 12:28 #10
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: Resultaten meerdere checkboxes verwerken
Je kunt ook gewoon doen:
if(count($_POST['opties']) != 0) { $options = implode(",", $_POST['opties']); }
-
13-06-2011, 12:29 #11
- Berichten
- 943
- Lid sinds
- 15 Jaar
Re: Resultaten meerdere checkboxes verwerken
Super, het werkt!
-
13-06-2011, 12:29 #12
- Berichten
- 1.245
- Lid sinds
- 18 Jaar
Re: Resultaten meerdere checkboxes verwerken
Wat werkt er precies niet, de opties komen hier er onder te staan die ik aangevinkt heb.
Edit:
Zie dat het opgelost is :)
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic