checkbox verarbeiten-wie?
Simon
- php
0 Tom
hi zusammen,
ich habe folgendes Problem (bin ein ziemlicher php-newbie):
ich habe einen msql-request, hab daraus einen array mit 4 werten erzeugt. diese 4 werte lasse ich nun als tabelle anzeigen. die zeile wiederholt sich sooft, bis kein datenbankeintrag vorhanden ist. so weit so gut.
nächster schritt: ich hab diese tabelle in ein formular gesetzt, jede zeile bekommt eine checkbox. so weit auch gut. aber jetzt:
wie bekomme ich den wert der checkbox (yes/no) mit dem tabellenarray kombiniert, dass ich z.B. beim absenden des formulares wieder die tabelle angezeigt bekomme, aber nur mit den angehakten checkboxen?
vlg
simon
Hello,
wie bekomme ich den wert der checkbox (yes/no) mit dem tabellenarray kombiniert, dass ich z.B. beim absenden des formulares wieder die tabelle angezeigt bekomme, aber nur mit den angehakten checkboxen?
Ich setze mal voraus, dass die Tabelle der Db einen Primärschlüssel hat
1. Abfrage lautete also:
select id
, datenspalte
from $table
where $kriterium
;
Nun gibst Du aus für jede Zeile
echo "<input type="checkbox" name="check[$id]" value="checked">", htmlsepcialchars($datenspalte), "\n";
Wenn der Post aus dem Formular zurückkommt, hast Du ein Array
$_POST['check'][22] => 'checked';
$_POST['check'][55] => 'checked';
$_POST['check'][1013] => 'checked';
$_POST['check'][1050] => 'checked';
Daraus kannst Du mit
$_set = array();
foreach ($_POST['check'] as $key => $val)
{
$_set[] = intval($key);
}
$setstr = implode(',',$_set);
ein Dataset machen und erneut abfragen:
select id
, datenspalte
from $table
where id
in ($setstr);
und dann wieder ausgeben:
echo "<input type="checkbox" name="check[$id]" value="checked" checked>", htmlsepcialchars($datenspalte), "\n";
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
sieht gut aus, vielen dank!!
zur belohnung gibts eine textkorrektur auf deiner website. dort steht:
"Die Internmet-Version der Bergpost ist ausschließlich für die private Nutzung...",
also ein "m" zu viel;-)
Simon
Hellihello Zsammen,
bei mir sah es so aus (Toms natürlich für DB optimierter und außerdem dynamischer):
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>checkboxen_check</title>
<link rel="stylesheet" type="text/css" href="css.css">
</head>
<body>
<form method="get" action="">
<p>
<?php
$checked="";
if (isset($_GET["unique_name"]))
{
$checked='checked="checked"';
}
?>
unique_name: <input type="checkbox" name="unique_name" <?php echo $checked;?> value="unique_name_value"/>
</p>
<p>
<?php
$checked="";
if (isset($_GET["array_name"]) && in_array("array_name_value1",$_GET["array_name"]))
{
$checked='checked="checked"';
}
?>
array_name_value1: <input type="checkbox" name="array_name[]" <?php echo $checked;?> value="array_name_value1"/>
<?php
$checked="";
if (isset($_GET["array_name"]) && in_array("array_name_value2",$_GET["array_name"]))
{
$checked='checked="checked"';
}
?>
array_name_value2: <input type="checkbox" name="array_name[]" <?php echo $checked;?> value="array_name_value2"/>
[/code]
</pre>
</body>
</html>
Dasda eher fürs Prinzip...;
Dank und Gruß,
frankx
Hello,
echo "<input type="checkbox" name="check[$id]" value="checked" checked>", htmlsepcialchars($datenspalte), "\n";
Ich sag doch...
Das ist der Funktionsname, bei dem ich mich am häufigsten verschreibe.
Ich glaube, ich muss den patchen in meinem PHP
sc($datenspalte) schreibt sich auch viel schneller *gg*
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
super,danke! läuft schon wie geschmiert!!