Checkbox gebruiken voor php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Remco van Akker

Remco van Akker

12/10/2012 18:53:24
Quote Anchor link
Hallo,

Ik ben bezig met een script waarbij je liedjes kan toevoegen
maar ik zou ook graag willen aanvinken in zo'n checkbox of die dan
ook op de index pagina mag. Dus als die aangevinkt is dat er dan in
de kolom "index" "1" word gezet. Word die niet aangevinkt dan moet er
een "0" ingezet worden. Ik heb al goed gegoogled maar heb niks gevonden.
Ik heb het zelf ook geprobeerd maar het lukt me maar steeds niet.
Dit is de code die ik heb probeerd:

Quote:
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
<?php
$categorie
= $_POST['categorie'];
$yes = 'yes';
$no = 'no';

if($_POST['toevoegen']) {
    

if(isset($_POST['index']) &&
   $_POST['index'] == 'yes')
{

 

$insert = mysql_query('INSERT INTO songs (link, artiest, titel, categorie, index) VALUES ("'.mysql_real_escape_string($_POST['url']).'", "'.mysql_real_escape_string($_POST['artiest']).'", "'.mysql_real_escape_string($_POST['titel']).'", "'.mysql_real_escape_string($categorie).'", "'.$yes.'") ') or trigger_error(mysql_error());

echo '<h3>Succesvol toegevoegd!</h3>';



   echo "Need wheelchair access.";
}

else
{
    
$insert = mysql_query('INSERT INTO songs (link, artiest, titel, categorie, index) VALUES ("'.mysql_real_escape_string($_POST['url']).'", "'.mysql_real_escape_string($_POST['artiest']).'", "'.mysql_real_escape_string($_POST['titel']).'", "'.mysql_real_escape_string($categorie).'", "'.$no.'") ') or trigger_error(mysql_error());

}
}


?>


Heeft iemand enig idee hoe dit moet?
Gewijzigd op 12/10/2012 18:53:45 door Remco van Akker
 
PHP hulp

PHP hulp

23/12/2024 20:23:14
 
Reshad F

Reshad F

12/10/2012 19:55:35
Quote Anchor link
hmm 2 korte vraagjes waarom niet gewoon een boolean gebruiken maar yes en no?

verder zou ik het zo doen

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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {

    if(isset($_POST['toevoegen']) && isset($_POST['checkboxnamehier']) == true) {

        // hier je query

    }
    else if(isset($_POST['toevoegen']) && isset($_POST['checkboxnamehier']) == false) {
        // hier je andere query zonder index
    }

}

?>


ook moet je niet variabelen kopieren onnodig ( regel 2 ) en je moet goed controleren of er iets naar de server gestuurd is ( een action event ) dat doe je met

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

if($_SERVER['REQUEST_METHOD'] == 'POST') {

}


?>
 
Jaron T

Jaron T

12/10/2012 20:16:42
Quote Anchor link
@Reshad

== true is onzin als je hem in een if gebruikt
 
Obelix Idefix

Obelix Idefix

12/10/2012 21:11:27
Quote Anchor link
nog los van het onnodig kopiëren: je controleert niet eens of $_POST['categorie'] wel bestaat.

Spring je code ook meer/beter in. Je hebt nu (bijna) alles links uitgelijnd, waardoor je geen idee hebt welke { bij } hoort.
 
Reshad F

Reshad F

12/10/2012 23:58:03
Quote Anchor link
Jaron het is niet fout maar het is inderdaad makkelijker om alleen if($variabele) te gebruiken maar omdat hij de bedoeling van een boolean duidelijk moet snappen geef ik even een uitgebreid ( voor een gevorderde onnodige ) voorbeeld.
 
Remco van Akker

Remco van Akker

13/10/2012 11:59:28
Quote Anchor link
@Reshad F
Ik volgde je advies op maar
het werkt nog steeds niet.
Ik heb nu ook alles netjes uitgelijnd
en de Request_method gebruikt en de rest.
Maar hij werk nog steeds niet.
Help?

EDIT:
Ik zit nu op een aparte pagina wat dingen uit te proberen
maar ik heb nu deze code en hij wil wel "hoi" in de kolom artiest
zetten maar niet de waarde van de variabel $check. Weet iemand hoe dit komt?
Dit is de code:
Quote:
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
<?php

if($_POST['checken']) {

        if($_POST['index'] == 'yes')
        {

            $check = 'check';        
            echo 'Check!';
            
        }
else {
            $check = 'false';
            echo 'Not checked!';    
        }

        
    $sql = mysql_query('INSERT INTO songs (artiest, index) VALUES ("hoi", "'.$check.'")') or trigger_error(mysql_error());
        
}

?>
Gewijzigd op 13/10/2012 12:58:56 door Remco van Akker
 
Obelix Idefix

Obelix Idefix

13/10/2012 13:31:59
Quote Anchor link
Krijg je een foutmelding?
Debuggen: echo je query naar het scherm. Staat daar wat je verwacht?
Kopieer die query eens en voer hem direct uit in phpadmin. Werkt het dan wel?
 
- SanThe -

- SanThe -

13/10/2012 14:03:37
Quote Anchor link
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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $sql = "INSERT INTO songs
            (    link,
                artiest,
                titel,
                categorie,
                index
            )
            VALUES
            (    '"
. mysql_real_escape_string($_POST['url']) . "',
                '"
. mysql_real_escape_string($_POST['artiest']) . "',
                '"
. mysql_real_escape_string($_POST['titel']) . "',
                '"
. mysql_real_escape_string($_POST['categorie']) . "',
                '"
. (isset($_POST['index']) ? 1 : 0) . "'
            );
    if(mysql_query($sql) === false)
    {

        // ERROR
    }
    else
    {
        // ga verder
    }
}

?>
 
Remco van Akker

Remco van Akker

13/10/2012 14:47:11
Quote Anchor link
Als ik probeer de query uit te voeren in PHPMyAdmin zelf
dan vul ik deze code in:
Quote:
INSERT INTO songs (artiest, index) VALUES ("hoi", "hoi")


En dan krijg ik de volgende melding:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index) VALUES ("hoi", "hoi")' at line 1

EDIT:
OPGELOST! Het probleem was dat PHPMyAdmin de naam "index" voor een kolom, niet gebruikt kon worden. Dus index kan je niet als een naam gebruiken voor je kolom :S
Dus nu heb ik de kolom IND genoemd :)
Toch bedankt!
Gewijzigd op 13/10/2012 14:55:09 door Remco van Akker
 
Obelix Idefix

Obelix Idefix

13/10/2012 14:58:17
Quote Anchor link
Remco van Akker op 13/10/2012 14:47:11:
Dus index kan je niet als een naam gebruiken voor je kolom


http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
 
Remco van Akker

Remco van Akker

13/10/2012 15:01:46
Quote Anchor link
Ja, dat wist ik dus nog niet hahaha xD
 



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.