fetch checkbox variable uit db
Ik ben aan mijn eindwerk aan het werken voor school. Maar ik zit even vast... ik heb een checkbox loop geschreven waar je dingen kan checken, als je submit dan stuur je de variabelen naar een ander script en daar ontvang ik ze en wil ik die variabelen uit de database halen, alleen die.
Dit is mijn eerste script waar je kan checken:
<html>
<head>
<title>Retrieve data from database </title>
</head>
<body>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
include 'connect.php';
while($row = mysql_fetch_array($dbrrs)) {
echo "<form method=post action=code.php><input type=checkbox name=inrr[] value=$row[ww]|>  " . $row['ww'] . "<br>";
}
// Close the database connection
mysql_close();
echo "<input type=submit name=sub value=Volgende>";
// Check for checked options
if(isset($_POST['sub'])){
//to run PHP script on submit
if(!empty($_POST['inrr'])){
// Loop to store and display values of individual checked checkbox.
foreach($_POST['inrr'] as $selected){
echo $selected.", ";
}
}
}
?>
include 'connect.php';
while($row = mysql_fetch_array($dbrrs)) {
echo "<form method=post action=code.php><input type=checkbox name=inrr[] value=$row[ww]|>  " . $row['ww'] . "<br>";
}
// Close the database connection
mysql_close();
echo "<input type=submit name=sub value=Volgende>";
// Check for checked options
if(isset($_POST['sub'])){
//to run PHP script on submit
if(!empty($_POST['inrr'])){
// Loop to store and display values of individual checked checkbox.
foreach($_POST['inrr'] as $selected){
echo $selected.", ";
}
}
}
?>
</form>
</body>
</html>
en hier ontvang je de data en wil ik dus de variabelen in de sql zetten voor alleen deze te ontvangen.
Code (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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
include 'connect.php';
// strip en get ww
if(!empty($_POST['inrr'])){
// Loop to store and display values of individual checked checkbox.
foreach($_POST['inrr'] as $selected){
$test = $selected;
$bn = $test;
print_r(explode('|', $bn, 2));
//strip van de laatste 3 letters (OR)
/*$bn = substr($bn,0,strlen($e)-3);
echo $bn;
//fetch van db gecheckte ww
$dbww = "SELECT * FROM ww WHERE $bn ";
$dbwws = mysql_query($dbww);
while($row = mysql_fetch_array($dbwws)) {
//echo $row['ww'] . " mysql";
}*/
mysql_close();
}
}
?>
include 'connect.php';
// strip en get ww
if(!empty($_POST['inrr'])){
// Loop to store and display values of individual checked checkbox.
foreach($_POST['inrr'] as $selected){
$test = $selected;
$bn = $test;
print_r(explode('|', $bn, 2));
//strip van de laatste 3 letters (OR)
/*$bn = substr($bn,0,strlen($e)-3);
echo $bn;
//fetch van db gecheckte ww
$dbww = "SELECT * FROM ww WHERE $bn ";
$dbwws = mysql_query($dbww);
while($row = mysql_fetch_array($dbwws)) {
//echo $row['ww'] . " mysql";
}*/
mysql_close();
}
}
?>
Het probleem is dus dat ik niet weet hoe ik deze variabelen in een kerrie krijg voor de database
Alvast bedankt, ik hoop dat er me iemand kan helpen
in ieder geval moet er een variabele toegekend worden aan MySQli
Code (php)
1
2
3
2
3
<?php
$this->variabele = new mysqli("host", "username", "password", "databasenaam");
?>
$this->variabele = new mysqli("host", "username", "password", "databasenaam");
?>
Bij het uitvoeren van een query
kan er dan bijvoorbeeld gedaan worden
zo doe ik het in ieder geval.
en daarbij hoort natuurlijk ook de nodige error handling.
Gewijzigd op 07/01/2015 23:26:24 door unthinking majority
in een while loop te zetten. één keer lijkt mij genoeg.
zou dat niet beter kunnen? Omdat je met de HTML attributen constant double qoutes (") gebruikt kun je beter je tekst tussen singel qoutes (') zetten.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
while($row = mysql_fetch_array($dbrrs)) {
echo '<input type="checkbox" name="inrr[]" value="' . $row['ww'] . '" /> ' . $row['ww'] . '<br>';
}
?>
while($row = mysql_fetch_array($dbrrs)) {
echo '<input type="checkbox" name="inrr[]" value="' . $row['ww'] . '" /> ' . $row['ww'] . '<br>';
}
?>
Achter   hoort een ;
Waarom gebruik je de ene keer isset() en de andere keer empty() ?
De voorkeur is wat mij betreft isset() omdat een variabele die de waarde 0 heeft door empty als waar beoordeelt zal worden terwijl een variabele met de waarde 0 niet leeg is. Mijn advies dus om empty niet te gebruiken.
Dan even iets meer on topic:
Checkboxen wijken helaas iets van andere formulier velden af. Namelijk worden alle formuliervelden altijd teruggevonden in de $_POST array maar bij een checkbox vindt je deze alleen terug wanneer deze aangevinkt is. Is de checkbox niet aangevinkt krijg je dus niets! terug. Probeer maar:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
<form action="" method="post">
<input type="checkbox" name="test[]" />
<input type="checkbox" name="test[]" />
<input type="checkbox" name="test[]" />
<input type="checkbox" name="test[]" />
<input type="checkbox" name="test[]" />
<input type="submit" value="Verzenden" />
</form>
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
<form action="" method="post">
<input type="checkbox" name="test[]" />
<input type="checkbox" name="test[]" />
<input type="checkbox" name="test[]" />
<input type="checkbox" name="test[]" />
<input type="checkbox" name="test[]" />
<input type="submit" value="Verzenden" />
</form>
Dit betekend tevens ook dat wanneer je een array test in de array $_POST wilt hebben je de waarde tussen de [ en ] niet leeg kunt laten omdat je dan nooit meer weet welke er aangevinkt was en welke niet.
Probeer het volgende maar eens:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
<form action="" method="post">
<input type="checkbox" name="test[0]" />
<input type="checkbox" name="test[1]" />
<input type="checkbox" name="test[2]" />
<input type="checkbox" name="test[3]" />
<input type="checkbox" name="test[4]" />
<input type="submit" value="Verzenden" />
</form>
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
<form action="" method="post">
<input type="checkbox" name="test[0]" />
<input type="checkbox" name="test[1]" />
<input type="checkbox" name="test[2]" />
<input type="checkbox" name="test[3]" />
<input type="checkbox" name="test[4]" />
<input type="submit" value="Verzenden" />
</form>
Tot slot mag het ook met een associatieve array:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
<form action="" method="post">
<input type="checkbox" name="test[auto]" />
<input type="checkbox" name="test[motor]" />
<input type="checkbox" name="test[fiets]" />
<input type="checkbox" name="test[brommer]" />
<input type="checkbox" name="test[bus]" />
<input type="submit" value="Verzenden" />
</form>
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
<form action="" method="post">
<input type="checkbox" name="test[auto]" />
<input type="checkbox" name="test[motor]" />
<input type="checkbox" name="test[fiets]" />
<input type="checkbox" name="test[brommer]" />
<input type="checkbox" name="test[bus]" />
<input type="submit" value="Verzenden" />
</form>
Toevoeging op 08/01/2015 00:55:39:
Tot slot nog een voorbeeldje Hoe je makkelijk een array krijgt met de aangevinkte checkboxes:
Code (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
32
33
34
35
36
37
38
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
<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
$vervoer = array('auto', 'motor', 'fiets', 'brommer', 'bus');
$checkboxes = array();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['vervoer']))
{
$checkboxes = array_keys($_POST['vervoer']);
echo 'Aangevinkte checkboxes: <ul>';
foreach ($checkboxes as $checkbox)
{
echo '<li>' . $checkbox . '</li>';
}
echo '</ul>';
}
}
?>
<form action="" method="post">
<?php
foreach($vervoer as $voertuig) {
$checked = '';
if(in_array($voertuig, $checkboxes))
$checked = ' checked';
echo '<input type="checkbox" name="vervoer['.$voertuig.']"'.$checked.' />';
}
?>
<input type="submit" value="Verzenden" />
</form>
echo '<pre>';
print_r($_POST);
echo '</pre>';
$vervoer = array('auto', 'motor', 'fiets', 'brommer', 'bus');
$checkboxes = array();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['vervoer']))
{
$checkboxes = array_keys($_POST['vervoer']);
echo 'Aangevinkte checkboxes: <ul>';
foreach ($checkboxes as $checkbox)
{
echo '<li>' . $checkbox . '</li>';
}
echo '</ul>';
}
}
?>
<form action="" method="post">
<?php
foreach($vervoer as $voertuig) {
$checked = '';
if(in_array($voertuig, $checkboxes))
$checked = ' checked';
echo '<input type="checkbox" name="vervoer['.$voertuig.']"'.$checked.' />';
}
?>
<input type="submit" value="Verzenden" />
</form>
Gewijzigd op 08/01/2015 01:00:59 door Frank Nietbelangrijk