Checkbox insert niet naar database (scroll naar onder)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pieter Joordens

Pieter Joordens

07/01/2010 18:52:00
Quote Anchor link
Hallo allemaal,

ik zit met een klein probleempje:
ik heb een script wat gegevens uit een database haalt. Dit werkt helemaal prima, op 1 ding na: In 1 veld van de database worden dingen vanuit een <select> field geïmporteerd. Echter, ik heb een soort 'edit'-pagina. Hier kunnen de gegevens uit de database geupdate worden. Ook dit werkt prima op 1 punt na: Op de edit-pagina staat weer hetzelfde <select> field als op de invoerpagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<tr>
<td>Soort evemenent:
</td>
<td>
<select name='evenementtype' id='evenementtype'>
<option value='muziekevenement'>Muziekevenement</option>
<option value='sportevenement'>Sportevenement</option>
<option value='anders'>Anders</option>
</select>
</td>
</tr>


Hierin wil ik dat de waarde uit de database ook geselecteerd wordt: dus als in de database staat 'Muziekevenement', wil ik dat op de editpagina, in het veld 'evenementtype' ook 'Muziekevenement' staat. Hiervoor heb ik echter geen oplossing hoe dit zou moeten. Wellicht dat iemand hier dit wel weet.

Alvast bedankt voor het antwoord.

Grtz Pieter
Gewijzigd op 01/01/1970 01:00:00 door Pieter Joordens
 
PHP hulp

PHP hulp

22/11/2024 06:08:07
 
- Mark -

- Mark -

07/01/2010 18:58:00
Quote Anchor link
Zet selected="true" in het option veld waar de value gelijk is aan die uit de database.
 
Pim -

Pim -

07/01/2010 18:58:00
Quote Anchor link
voeg de attribute selected="selected" toe

EDIT: Jij was me voor. Maar raar, in de referentie staat:
<option value="" selected> </option>
http://www.w3.org/TR/html401/interact/forms.html#h-17.6.1

Toch wordt selected="selected" vaker gebruikt in de tuts... Maar selected="true" doet t vast ook
Gewijzigd op 01/01/1970 01:00:00 door Pim -
 
Pieter Joordens

Pieter Joordens

07/01/2010 18:59:00
Quote Anchor link
Dit wist ik, maar hoe krijg ik die bij het goede veld? Dit varieert uiteraard per item.
 
- Mark -

- Mark -

07/01/2010 19:13:00
Quote Anchor link
Niet getest maar zou moeten werken. Wel even $databasewaarde veranderen in die van jou.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php

    #| Set " $evenementen " array met alle mogelijke type evenementen.
    
        $evenementen = array(
                            
                             'muziekevenement'    => 'Muziek evenement',
                             'sportevenement'     => 'Sport evenement',
                             'anders'             => 'Anders'
                            
                             );
        
        
    #| Lijst met alle evenementen weergeven.
    
        echo '<select name="evenementtype" id="evenementtype">';
        
        
    #| Alle opties aanmaken.
    
        foreach($evenementen as $id => $evenement)
        {

            
        #| Controleren of " $evenement " overeenkomt met die uit de database waarde.
        
            if($evenement == $databasewaarde)
            {


            /*---- INFO: Het geselecteerde evenement weergeven. ----*/
                
                echo '<option value="'.$id.'" selected="true">'.$evenement.'</option>';
                
            }

            else
            {
            
            /*---- INFO: Alle niet geselecteerde evenementen. ----*/
                
                echo '<option value="'.$id.'">'.$evenement.'</option>';        
                
            }
        }

    
    
    #| Lijst afsluiten.
    
        echo '</select>';

?>
Gewijzigd op 01/01/1970 01:00:00 door - Mark -
 
Pim -

Pim -

07/01/2010 19:15:00
Quote Anchor link
Ligt eraan hoe je het opslaat in je DB.
Als je het op de value doet (meteen met een mooie array om het nog makkelijk aan te passen):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

$array
= array(
   'muziekevenement' => 'Muziekevenement',
   'sportevenement'  => 'Sportevenement',
   'anders'          => 'Anders'
);

foreach($array as $value=>$label) {
   echo '<option value="'.$value.'"'.(if ($row['type'] == $value)?'selected="selected"':'').'>'.$label.'</option>';
}

?>


EDIT: Haha Mark, jezus ;)
Gewijzigd op 01/01/1970 01:00:00 door Pim -
 
Pieter Joordens

Pieter Joordens

07/01/2010 22:04:00
Quote Anchor link
Oke bedankt beiden! Ik ga toch voor de versie van Pim..
 
Pieter Joordens

Pieter Joordens

07/01/2010 23:00:00
Quote Anchor link
Hierop aansluitend heb ik nu nog een vraag: hoe kun je de waarde van een checkbox inserten in een database?
Ik heb het nu zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
        <tr>
            <td>
                Caravan nodig?
            </td>
            <td>
                <input type='checkbox' name='caravan' id='caravan' />
            </td>
        </tr>


met als query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
INSERT INTO table (caravan) VALUES ('". $_POST['caravan'] ."')

In de query zitten uiteraard nog andere (niet relevante) waarden, deze worden wel allemaal goed geïnsert, alleen de checkbox niet..

Ik krijg altijd 0 geinsert in mijn database. Hoe komt dit?
 
Niels K

Niels K

08/01/2010 09:14:00
Quote Anchor link
Je hebt geen value in je checkbox:)
 
Pieter Joordens

Pieter Joordens

08/01/2010 10:50:00
Quote Anchor link
Als ik hem aanvink heeft de checkbox toch waarde 1 en anders waarde 0?
Maar ook als ik hem aanvink geeft hij waarde 0 aan de database..
 
Niels K

Niels K

08/01/2010 12:00:00
Quote Anchor link
Je hebt ook geen submit button. Ik zal even wat schrijven zodat het wat duidelijker wordt

EDIT

Ik zal niet alles voorkauwen maar je op de goeie weg proberen te helpen

Allereerst.. Je hebt een submit button nodig om het te kunnen verzenden en het op te vangen. Het kan ook zonder doormiddel van javascript maar die stap is de ver genomen en ook als javascript uit staat kan je niks meer insert.

we maken dus eerst een tabel

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<table>
        
        <tr>
                
               <td>Carvan nodig?</td>
                
        </tr>
            
        <tr>
            
                <td><input type="checkbox" name="checkbox" value="Ja" /></td>
            
        </tr>
            
        <tr>
            
                <td><input type="submit" value="Versturen" /></td>
            
        </tr>
        
</table>


Je ziet dat ik hierbij een submit button heb gemaakt zodat hij een form verzend en je het via php kan opvangen

Ik zag dat jij ook geen form hebt gemaakt dus php zou hem nooit op kunnen vangen

Om de tabel zetten we dus dit

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<form method="POST" action="<?php echo basename ($_SERVER['PHP_SELF'])?>" />

</form>


Nu kunnen we aan de slag met php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php

    # zo kijken we dus of er wat gesubmit is.
    if($_SERVER['REQUEST_METHOD']  == 'POST')
    {
    
    
    }


?>


Nu wil jij kijken wat voor value er is in gevuld. Het is namelijk zo als jij hem niet aanvinkt geeft hij een notice error doe je het wel dan geeft hij de value.

Je kan simpel controleren of hij 'gezet' of te wel aangevinkt is, dat doen we zo (Met de if else structuur)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

if(!isset($_POST['checkbox']))
{


      $insert = 'Nee';

}

else
{

      $insert = 'Ja';

}


?>



Nu kunnen we aan de hand van de variable $insert de gegevens in de database schrijven.

Hier bij ga ik je niet helpen maar mag je zelf uitvogelen. Daar leer je echt het meeste van. Als het niet lukt mag je natuurlijk verder gaan met vragen en zullen wij je proberen te helpen. Voor de rest is dit natuurlijk heel breed uitgelegd en de helft zal je al weten. Maar het gaat even om het principe.

Gebruik ook de volgende tutorials om je php op te krikken tot een prachtig niveau. Je zult daar geen spijt van krijgen, Ik wens je succes!

http://phptuts.nl/view/39/
http://phptuts.nl/view/41/
Gewijzigd op 01/01/1970 01:00:00 door Niels K
 
Pieter Joordens

Pieter Joordens

08/01/2010 13:35:00
Quote Anchor link
Ik had heel het form gedeelte al, zoals ik in mijn eerste post zei: alles wordt goed geinsert behalve de checkbox. Met jou laatste code lukt het! bedankt voor deze hulp. Mijn php is al op een redelijk niveau, alleen daarbij had ik even wat hulp nodig.

Groeten
 
Niels K

Niels K

08/01/2010 14:07:00
Quote Anchor link
Suc6 ermee:)
 
Pieter Joordens

Pieter Joordens

08/01/2010 14:10:00
Quote Anchor link
Het is inmiddels gelukt met die if(isset())
thanks a lot
 



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.