[PHP/HTML] controle checkbox bij POST *

Pagina: 1
Acties:
  • 3.505 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
** Topic titel vergeten |:( **

Niet zeker of dit een fout is een de HTML of PHP code. Here goes..

HTML:
1
2
<label for="box">
                <input type="checkbox" name="box" id="box" value="send" /> Test.. </label>


Vervolgens wordt gekeken of de checkbox is aangeklikt...
PHP:
1
if ( $_REQUEST['box'] == 'send' ){ .. }


Probleem: ongeacht of de checkbox is aangevinkt, wordt altijd de waarde 'send' gezien en is de checkbox dus altijd aangevinkt volgens PHP.... Ik zie hier vast iets kleins over 't hoofd, maar wat.. 8)7

[ Voor 3% gewijzigd door Verwijderd op 02-11-2007 13:50 ]


Acties:
  • 0 Henk 'm!

  • disjfa
  • Registratie: April 2001
  • Laatst online: 03-07 14:47

disjfa

be

Heb je nog een ander invoerveld genaamd box?

disjfa - disj·fa (meneer)
disjfa.nl


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

$_POST['box'] == 1 geloof ik :)

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • SinergyX
  • Registratie: November 2001
  • Laatst online: 22:12

SinergyX

____(>^^(>0o)>____

Checkbox is dacht ik altijd 0 of 1.

edit: wat snake zegt :X

[ Voor 27% gewijzigd door SinergyX op 02-11-2007 13:53 ]

Nog 1 keertje.. het is SinergyX, niet SynergyX
Im as excited to be here as a 42 gnome warlock who rolled on a green pair of cloth boots but was given a epic staff of uber awsome noob pwning by accident.


Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Een checkbox wordt alleen opgestuurd als hij aangevinkt is, eenvoudig controleren door middel van isSet() zou moeten voldoen.

PHP:
1
2
3
4
if (isSet($_POST["box"]))
{
//iets
}

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 18-09 13:37

sopsop

[v] [;,,;] [v]

PHP:
1
2
3
4
5
6
7
<?php 
if (isset($_POST['box']) && $_POST['box'] == 'val') { 
  // checkbox aangevinkt 
} else { 
  // checkbox uitgevinkt 
} 
?>

[ Voor 5% gewijzigd door sopsop op 02-11-2007 13:55 ]


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

AtleX schreef op vrijdag 02 november 2007 @ 13:53:
Een checkbox wordt alleen opgestuurd als hij aangevinkt is, eenvoudig controleren door middel van isSet() zou moeten voldoen.

PHP:
1
2
3
4
if (isSet($_POST["box"]))
{
//iets
}
Nopz, een checkbox wordt altijd meegestuurd, verwar het niet met een disabled field, die wordt niet meegestuurd.

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Doe dan een TR ( Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/icon_hand.gif ) en geef dan meteen een suggestie voor een topictitel...
Snake schreef op vrijdag 02 november 2007 @ 13:54:
[...]

Nopz, een checkbox wordt altijd meegestuurd, verwar het niet met een disabled field, die wordt niet meegestuurd.
Dan ben jij toch degene die verward is; een niet-checked textbox wordt niet meegestuurd hoor ;) Evenals een radio-control overigens zonder gekozen optie.

[ Voor 33% gewijzigd door RobIII op 02-11-2007 14:01 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

*TIP*
Maak een simpele post pagina, die vervolgens Post naar een pagina met alleen daarin een phpinfo . Dan kan snel zien wat er binnen komt en wat niet.

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • iH8
  • Registratie: December 2001
  • Laatst online: 17-06-2024

iH8

Snake schreef op vrijdag 02 november 2007 @ 13:54:
[...]

Nopz, een checkbox wordt altijd meegestuurd, verwar het niet met een disabled field, die wordt niet meegestuurd.
== FALSE ;) als een checkbox niet is aangevinkt en het form wordt gesubmit dan wordt ie echt niet verzonden.

Aunt bunny is coming to get me!


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Snake schreef op vrijdag 02 november 2007 @ 13:54:
[...]

Nopz, een checkbox wordt altijd meegestuurd, verwar het niet met een disabled field, die wordt niet meegestuurd.
Dat kan per PHP versie nogal eens verschillen, sommige versie sturen em altijd mee maar volgens mij is het juist normaal dat ie em alleen meestuurt als ie aangevinkt is. Ik check iig altijd met de methode die sopsop aangeeft want dan werkt het in allebei de gevallen.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:44

crisp

Devver

Pixelated

Snake schreef op vrijdag 02 november 2007 @ 13:54:
[...]

Nopz, een checkbox wordt altijd meegestuurd, verwar het niet met een disabled field, die wordt niet meegestuurd.
onzin, een niet gecheckede checkbox is geen succesvol formcontrol en wordt dus niet meegestuurd.

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De site draait bij Antagonist. Ik heb zo'n vermoeden dat ze PHP daar flink hebben beperkt.. :X Of zou dit altijd moeten werken?

[ Voor 14% gewijzigd door Verwijderd op 02-11-2007 14:01 ]


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

crisp schreef op vrijdag 02 november 2007 @ 13:59:
[...]

onzin, een niet gecheckede checkbox is geen succesvol formcontrol en wordt dus niet meegestuurd.
Mijn excuses ;) Hij wordt toch niet meegestuurd.

Ofwel checken op het value, ofwel checken op isset. Maar over dat laatste twijfel ik echt, aangezien ik vroeger checkte op 1 of 0.

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Snake schreef op vrijdag 02 november 2007 @ 13:54:
[...]

Nopz, een checkbox wordt altijd meegestuurd, verwar het niet met een disabled field, die wordt niet meegestuurd.
Nope:

http://atlex.nl/voorbeelden/php/checkbox.php
PHP:
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
<?php
error_reporting(E_ALL);

$message = "";

if (strToLower($_SERVER["REQUEST_METHOD"]) == "post")
{
    $message = "De checkbox is ".(isSet($_POST["check"]) ? "WEL" : "NIET")." aangevinkt";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="nl">
    <head>
        <title>Checkbox test</title>
    </head>
    
    <body>
        <h1>Checkbox test</h1>
        <form method="post" action="checkbox.php">
            <p>
                <?php echo $message; ?>
            </p>
            <p>
                <input type="checkbox" name="check"> Test
            </p>
            <p>
                <input type="submit" value="Test">
            </p>
        </form>
    </body>
</html>

Aanvinken geeft "De checkbox is wel aangevinkt", en niet aanvinken geeft "De checkbox is NIET aangevinkt".

edit:

Beter laat dan nooit. :z Maar wel met voorbeeldcode. :7


[edit2]
Cartman! schreef op vrijdag 02 november 2007 @ 13:59:
[...]

Dat kan per PHP versie nogal eens verschillen, sommige versie sturen em altijd mee maar volgens mij is het juist normaal dat ie em alleen meestuurt als ie aangevinkt is. Ik check iig altijd met de methode die sopsop aangeeft want dan werkt het in allebei de gevallen.
Je browser beslist of hij 'm verstuurd ja of nee, niet PHP. De PHP versie maakt dus niets uit.

[ Voor 25% gewijzigd door AtleX op 02-11-2007 14:08 ]

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Snake schreef op vrijdag 02 november 2007 @ 14:01:
Ofwel checken op het value, ofwel checken op isset. Maar over dat laatste twijfel ik echt, aangezien ik vroeger checkte op 1 of 0.
Een lege value evalueert naar 0 als je 'm compared als integer ;)
Cartman! schreef op vrijdag 02 november 2007 @ 13:59:
Dat kan per PHP versie nogal eens verschillen, sommige versie sturen em altijd mee maar volgens mij is het juist normaal dat ie em alleen meestuurt als ie aangevinkt is.
Dat heeft geen drol met PHP of de versie van PHP te maken, want de browser (=client side) verstuurt (post/get) de waardes ;)

[ Voor 39% gewijzigd door RobIII op 02-11-2007 14:04 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
sopsop schreef op vrijdag 02 november 2007 @ 13:54:
PHP:
1
2
3
4
5
6
7
<?php 
if (isset($_POST['box']) && $_POST['box'] == 'val') { 
  // checkbox aangevinkt 
} else { 
  // checkbox uitgevinkt 
} 
?>
Deze code geeft nog steeds altijd "true" aan (dus checkbox is aangevinkt, ookal is ie dat niet).

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:47

Creepy

Tactical Espionage Splatterer

En laat de inhoud van print_r($_POST) eens zien van dat moment dan (en eventueel de html code van het geposte formulier). Als bovenstaande code true geeft dan is $_POST['box'] toch echt gezet en komt er dus in elk geval 1 form item mee die box heet.

[ Voor 16% gewijzigd door Creepy op 02-11-2007 14:20 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 22:05
en als je eens een
PHP:
1
print_r($_POST);
doet en dan de uitvoer vergelijkt mét en zonder checkbox aangevinkt?

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


Acties:
  • 0 Henk 'm!

  • Equator
  • Registratie: April 2001
  • Laatst online: 09-09 15:29

Equator

Crew Council

#whisky #barista

Verwijderd schreef op vrijdag 02 november 2007 @ 14:14:
[...]


Deze code geeft nog steeds altijd "true" aan (dus checkbox is aangevinkt, ookal is ie dat niet).
PHP:
1
2
3
4
5
6
7
<?php  
if (isset($_POST['box']) && $_POST['box'] == 'on') {  
  // checkbox aangevinkt  
} else {  
  // checkbox uitgevinkt  
}  
?>

En geen value meegeven in je input :)

Zie: testje

[ Voor 8% gewijzigd door Equator op 02-11-2007 14:33 ]


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
RobIII schreef op vrijdag 02 november 2007 @ 14:03:
Dat heeft geen drol met PHP of de versie van PHP te maken, want de browser (=client side) verstuurt (post/get) de waardes ;)
Nou je het zegt ja :D

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Jaap-Jan schreef op vrijdag 02 november 2007 @ 14:21:
en als je eens een
PHP:
1
print_r($_POST);
doet en dan de uitvoer vergelijkt mét en zonder checkbox aangevinkt?
In beide gevallen: 1

Acties:
  • 0 Henk 'm!

  • disjfa
  • Registratie: April 2001
  • Laatst online: 03-07 14:47

disjfa

be

Dat kan dus echt niet. Ik zou echt je formulier gaan nakijken. Het zou dan trouwens ook "send" moeten zijn. En niet 1 :)

[ Voor 12% gewijzigd door disjfa op 02-11-2007 14:48 ]

disjfa - disj·fa (meneer)
disjfa.nl


Acties:
  • 0 Henk 'm!

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 22:05
Ik zou je nog even naar deze post willen verwijzen: Creepy in "\[PHP/HTML] controle checkbox bij POST *", want zo komen we niet echt verder. Oftewel, geef de output eens en ook (graag zelfs, helemaal doordat er geen verschil in output is) het html- formulier :).

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:47

Creepy

Tactical Espionage Splatterer

Met Jaap-Jan dus. Geef nu eens echt de volledige output van print_r($_POST) samen met je form HTML en niet alleen "1" want dat is het 100% zeker te weten niet de volledige output van de print_r. Zonder die info kunnen we je echt niet verder helpen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1