PHP Ganz viele Checkboxen auslesen....

rony12

Commodore
Registriert
Jan. 2007
Beiträge
4.941
Hio....

ich habe eine Tabelle für eine invetardatenbank erstellen lassen... man konnte mir hier im forum schon sehr viel weiterhelfen, bei unterschiedlichen problemen....

Aber ich versuche das mal zu erklären....

Es wird automatisch eine Tabelle mit allen Einträgen aus einer Datenbank erzeugt... soweit kein problem.

Jeder zeile hat eine Checkbox, die als namen die ID des datensatzes besitzt.
Nun soll es möglich sein, mehere checkboxen anzuklicken, und am ende dann auf speichern zu drücken.

Dabei sollen, bei den Datensätzen deren checkbox angehakt war, ein werd dazugeschrieben werden....

Nun stehe ich aber vor dem problem, wie ich denn mehere Checkboxen auslesen/speichern soll?

Ich hatte jetzt grob daran gedacht, dies mit einem array zu lösen...

Checkboxen abgreifen, in ein array speichern
Array auslesen, und bei den IDs dann einen wert setzen

Da ich nur halbwissen in dem bereich habe - und mit solchen sachen am lernen bin, bin ich mir aber nicht sicher, ob das eine gute methode ist... oder ob es besser geht :)

Hättet ihr da vorschläge?

PS:
Die Anzahl der spalten geht von 1-6000 - je nach dem was als suchkriterium ausgewählt wurde.
 
klingt doch ganz gut :)

beim erstellen der seite füllst du das array mit dem namen der checkboxen und danach kannst du dieses array durch die mit POST übergebenen daten wieder nutzen und mit nem foreach den wert auslesen.
 
Moin.. Ich bin jetzt kein Profi, aber ich habe so etwas ähnliches realisiert. Es werden mir eMail Adressen nach einem bestimmten Kriterium aus einer Datenbank ausgelesen. Via Checkbox aktiviere ich dann diese Adressen und kann z.B. meinen Newsletter an diese Leute versenden :)

Code:
<input type="checkbox" name="send[]" value="<?php echo $list['id']; ?>" title="<?php echo $list['vorname'].' '.$list['nachname']; ?> markieren" />
So sieht meine Checkbox aus. Alles was darin steht, übergebe ich an meine Klasse die für alles zuständig ist.
PHP:
class bla {
 private $input;

 public function takeMail($input="") {
   $this->input = $input;
   return $this;
  }

 public function sendMail($form="") {
  foreach($this->input['send'] as $x) {
   $sql = "SELECT xx FROM xx WHERE id='".$x."' LIMIT 1";
   $que = $this->db->query($sql);
   $ass = $que->fetch_assoc();
   $this->sendeEmail($ass);
  }
 }
}
So ungefähr könnte man das machen. Ein richtiger Anwendungsentwickler wird das vielleicht noch mal alles kritisieren, wegen Lesbarkeit.. aber für mich alleine reicht es aus :D

Gruß, Domi
 
Zuletzt bearbeitet: (Ups.. Fehler im Code...)
ok... danke

aber ich kann dem immernoch nicht so ganz folgen ^^

meine checkboxen sehen jetzt nach diesem schema aus:

HTML:
<input type="checkbox" id="1" name="c[]" value="1">
<input type="checkbox" id="2" name="c[]" value="2">
....

ich komme bei dem php code nicht weiter....

jetzt muss ich das array ja mittles $_POST wieder übergeben...
wie kann ich dann nun zeile für zeile ausgeben?
 
du solltest die namens gebung deiner variablen vll überdenken und statt nem c etwas ausagekräftigeres verwenden ;)
ansonsten halt in deinem fall so

Code:
foreach ($_POST['c'] as $id) {
  echo $id;
}
sollte alle egcheckten ids ausgeben
 
ok, vielen dank schonmal :)

so ähnlich hatte ich das sogar schon...
Das mit dem benennen, ist jetzt nur, zum schauen - real kommt dort etwas anderes hin - hab mir aber eine kleine testtabelle gebaut, in der ich spiele ;)

funktionieren tut es leider noch nicht :(

ggf. auch wichtig:

HTML:
<form name="auslese" action="test.php?speichern=ja" method="POST">


PHP:
<?
if ($_GET["save"] == "Speichern") {

foreach ($_POST['c'] as $id) {
    echo $id;
}
}
?>
 
hö deinem code nach sollte die if abfrage doch so aussehen
Code:
if ($_GET["speichern"] == "ja") {
 ...
}
oder nicht?
 
arg... ich idiot...

ich hatte vor zeiten mal den button dort eingetragen.... dieser nannte sich dann auch total anders (save)...

geht... funktioniert.... wie lang ich davor sitze... und allerhand sachen ausprobiert habe... und dann leigt dann an soetwas ^^

aber da schaute man auch nicht direkt drauf

danke... soweit ich das probiert habe... geht es :)
 

Ähnliche Themen

Zurück
Oben