Php & Mysql checkboxes tutorial
Ik wil namelijk meerdere checkboxes in mysql opslaan of ze wel zijn afgevinkt of niet
en wanneer een record wordt opgevraagd dan laat hij zien of de waarden 1 of 0 zijn.
Gewijzigd op 12/08/2011 09:44:06 door - Ariën -
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
// Stap 1 : index.php ?><html>
<form method="POST" action="verwerk.php">
Keuze 1 <input type="checkbox" name="c1" id="c1">
Keuze 2 <input type="checkbox" name="c2" id="c2">
<input type="submit" name="knop" id="knop"
value="Ja ik ben klaar met het selecteren van mijn keuze" />
</form></html>
// Stap 1 : index.php ?><html>
<form method="POST" action="verwerk.php">
Keuze 1 <input type="checkbox" name="c1" id="c1">
Keuze 2 <input type="checkbox" name="c2" id="c2">
<input type="submit" name="knop" id="knop"
value="Ja ik ben klaar met het selecteren van mijn keuze" />
</form></html>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
// Stap 2: verwerk.php
<?php
include("verrrrrrrrrbinding.php");
$keuze1 = $_POST['c1'];
$keuze2 = $_POST['c2'];
$sql = "INSERT INTO tabellen (c1, c2)
VALUES ('$keuze1', '$keuze2')";
// En dan terug waar u vandaan kwam aub
header("Location: ".$session->referrer);
$result = mysql_query($sql) or die ( mysql_error() );
?>
<?php
include("verrrrrrrrrbinding.php");
$keuze1 = $_POST['c1'];
$keuze2 = $_POST['c2'];
$sql = "INSERT INTO tabellen (c1, c2)
VALUES ('$keuze1', '$keuze2')";
// En dan terug waar u vandaan kwam aub
header("Location: ".$session->referrer);
$result = mysql_query($sql) or die ( mysql_error() );
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
// Stap 3: laatesziendan.php
$gekozen = $_GET['gekozen'];
$laateszien = "SELECT * FROM tabellen WHERE gekozen='$gekozen' ORDER BY id DESC" ;
Ben ik gekozen ?
<input type="checkbox" name="c1" id="c1" value="<? echo $array['keuze1']; ?>" disabled />
Of ben ik gekozen ?
<input type="checkbox" name="c2" id="c2" value="<? echo $array['keuze2']; ?>" disabled />
// ik heb disabled gebruikt zodat opgevraagde records niet meer kunnen worden gewijzigd als je er perongeluk op klikt ofzo.
?>
// Stap 3: laatesziendan.php
$gekozen = $_GET['gekozen'];
$laateszien = "SELECT * FROM tabellen WHERE gekozen='$gekozen' ORDER BY id DESC" ;
Ben ik gekozen ?
<input type="checkbox" name="c1" id="c1" value="<? echo $array['keuze1']; ?>" disabled />
Of ben ik gekozen ?
<input type="checkbox" name="c2" id="c2" value="<? echo $array['keuze2']; ?>" disabled />
// ik heb disabled gebruikt zodat opgevraagde records niet meer kunnen worden gewijzigd als je er perongeluk op klikt ofzo.
?>
Maar ik weet niet of dit zo gaat want ik weet er nog niet zoveel over
Gewijzigd op 12/08/2011 10:16:37 door Robby Alexander
<input type="checkbox" name="c1" id="c1">
Als dit is aangevinkt dan geeft $_POST['c1'] de waarde 'on' en als het niet is aangevinkt bestaat $_POST['c1'] helemaal niet.
<input type="checkbox" name="c1" id="c1" value="1">
Als dit is aangevinkt dan geeft $_POST['c1'] de waarde '1' en als het niet is aangevinkt bestaat $_POST['c1'] helemaal niet.
$sql = "INSERT INTO tabellen (c1, c2)
VALUES ('$keuze1', '$keuze2')";
Klopt helemaal, je kunt dat overigens oplossen door er een hidden input bij te zetten.
<input type="hidden" name="c1" value="0">
<input type="checkbox" name="c1" id="c1">
write down ik zie het probleem er niet van in ?
Eric Wagener op 12/08/2011 11:00:23:
@SanThe
Klopt helemaal, je kunt dat overigens oplossen door er een hidden input bij te zetten.
<input type="hidden" name="c1" value="0">
<input type="checkbox" name="c1" id="c1" value="1">
Klopt helemaal, je kunt dat overigens oplossen door er een hidden input bij te zetten.
<input type="hidden" name="c1" value="0">
<input type="checkbox" name="c1" id="c1" value="1">
Even getest, en dit werkt perfect.
Let wél op de volgorde, want dit werkt niét.
<input type="checkbox" name="c1" id="c1" value="1">
<input type="hidden" name="c1" value="0">
Gewijzigd op 12/08/2011 11:38:59 door - SanThe -
Hou er wel rekening mee dat je de waarde voordat je ze in de database opslaat nog wel controleert! Ook al is de waarde 1 of 0 (true/false) blijft het user-input wat veranderd kan worden. Anders is het mogelijk SQL-injection whatever te doen.
Santhe moet het niet zoiets zijn:
Code (php)
1
2
2
<input type="checkbox" name="c1" id="c1" value="<?php echo $_GET['c1'] ?>">
<input type="hidden" name="c1" value="0">
<input type="hidden" name="c1" value="0">
En kan ik het beste gewoon TinyInt gebruiken met characters 1 ???
Gewijzigd op 12/08/2011 13:12:09 door Robby Alexander
@Robby Lees dat stukje van SanThe nu nog eens. En dan vooral dat deel van hoe het juist niet moet.
en dan moet ik php code toevoegen in de zin van:
$c1 = als het 1 is dan moet je echo: checked en als het 0 is dan moet je niets zetten
Gewijzigd op 17/08/2011 11:01:31 door Robby Alexander
Code (php)
1
<input type="checkbox" name="c1" id="c1" <?php echo $var_uit_database == 1 ? 'checked' : ''; ?>/>
Geen disabled gebruiken want dan wordt die niet mee verstuurd.
Code (php)
Toevoeging op 17/08/2011 11:11:53:
santhe met alle respect voor je knowledge & skill maar bij mij neemt hij em gewoon mee
Toevoeging op 17/08/2011 11:13:31:
alleen jammer dat mijn code zooooo lang is
Robby Alexander op 17/08/2011 11:11:07:
santhe met alle respect voor je knowledge & skill maar bij mij neemt hij em gewoon mee
Zojuist hier getest en het disabled veld wordt niet verstuurd.
Toevoeging op 17/08/2011 11:22:37:
Robby Alexander op 17/08/2011 11:11:07:
alleen jammer dat mijn code zooooo lang is
Korter?
Code (php)
1
<input type="checkbox" name="c1" id="c1" <?php echo $array['c1'] == 1 ? 'checked' : ''; ?> disabled />
Wat is dan nog het probleem?
Toevoeging op 17/08/2011 13:24:30:
thanks voor de hulp nogmaals inderdaad de verkorting werkt supergoed