checkbox in array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Enrico -

Enrico -

08/03/2012 15:31:26
Quote Anchor link
ik heb een formulier met een aantal invulvelden en een aantal checkboxen.
Zodra op de Verstuur button wordt geklikt worden de ingevulde waarden van de invulvelden weggeschreven in de database.

De checkboxen worden vanuit een tabel gegeneerd en hebben de naam a en dan het id van de rij er bij.
Dus bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
<input type=checkbox name=a1 value=1 /><br />
<
input type=checkbox name=a5 value=5/><br />
<
input type=checkbox name=a7 value=7/>
?>


Hoe vang ik de waardes van alle aangevinkte checkboxen op en stop ze gelijk in een array?
 
PHP hulp

PHP hulp

21/11/2024 19:20:27
 
Gerhard l

gerhard l

08/03/2012 15:34:21
Quote Anchor link
geef ze allemaal dezelfde naam en vang ze op in die naam:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<input type=checkbox name=a[] value=1 /><br />
<input type=checkbox name=a[] value=5/><br />
<input type=checkbox name=a[] value=7/>
<?
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    if(!empty($_POST['a'])){
        echo '<pre>';
        print_r($_POST['a']);
        echo '</pre>';
        //voila in een array
    }
}

?>
 
Enrico -

Enrico -

08/03/2012 16:11:45
Quote Anchor link
Ik sla de array op in de database met behulp van de functie serialize().
Daarna haal ik de array weer op uit de database met de functie unserialize() en wil ik de data, behorende bij de diverse waardes onder elkaar weergeven.

De array is dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
Array
(
    [
0] => Array
        (
            [
14] => 14
            [17] => 17
        )

)

?>


Zeg dat in de tabel "kleuren" bij id 14 "rood" hoort en bij id 17 "blauw".
Hoe krijg ik dan onder elkaar

rood
blauw

te zien?
Gewijzigd op 08/03/2012 16:12:28 door Enrico -
 
Noppes Homeland

Noppes Homeland

08/03/2012 17:47:37
Quote Anchor link
Quote:
Ik sla de array op in de database met behulp van de functie serialize

Grootste fout die je kunt maken!! Niet doen dus. Gewoon 1 kleur per record gerelateerd aan x opslaan in een tabel.

En hoe wil je nu zoeken op kleur maar dan zonder het eerts naar php te moeten halen.
 
- SanThe -

- SanThe -

08/03/2012 18:12:31
Quote Anchor link
Het is al heel oud, maar misschien heb je er wat aan.
http://www.phphulp.nl/php/script/data-verwerking/checkboxen/413/
 
Raymond van Os

raymond van Os

09/03/2012 19:29:13
Quote Anchor link
$i = 0;
$i++;
<form method="post">
Foreach($iets as $anders){
<input type=checkbox name=gevuld[
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $i; ?>
value=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $anders;?>
/><br />
<input type=checkbox name=gevuld[
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $i; ?>
value=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $anders;?>
/><br />
}
<input type="submit">

Moet allemaal vanaf mn mobiel getypt worden dus let niet op de omtbrekende id values etc maar het us de bedoelin dat je nu het hele gebeuren post en daarna de gegevens die je gepost hebt ophalen en in een foreach stoppen dan uitlezen en dan krijg je de hoeveelheid aangevinkte terug met de waarde erin (in dit geval id)
Gewijzigd op 09/03/2012 19:32:36 door raymond van Os
 
Enrico -

Enrico -

09/03/2012 19:36:33
Quote Anchor link
met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    if(!empty($_POST['a'])){
        echo '<pre>';
        print_r($_POST['a']);
        echo '</pre>';
        //voila in een array
    }
}

?>

staat alles inderdaad in een array.

Als ik nu dit doe
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$a
= array($_POST['a']);
        
foreach ($a as $key) {
    echo $key."<br>";
    }

?>


dan geeft hij

Array

en niet

14
17

Hoe krijg ik wel

14
17

als output?

Toevoeging op 09/03/2012 19:44:38:

hmm, zo gaat het dus wel goed:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
foreach ($_POST['a'] as $key) {
    echo $key."<br>";
}

?>


Maar waarom is
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$a
= array($_POST['a']);
        
foreach ($a as $key) {
    echo $key."<br>";
    }

?>


dan niet goed?
 
- SanThe -

- SanThe -

09/03/2012 20:15:34
Quote Anchor link
Omdat $_POST['a'] al een array() is. En dat zet jij nogmaals in een array().
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.