Peter Mairhofer: Variable Anzahl an Checkboxen incl. Werten

Beitrag lesen

Zunächst einmal danke für eure Antworten!

An Sönke:
1.) War ein Schlampigkeitsfehler, normalerweise schreib ich immer Anführungszeichen um HTML Attribute. (war nicht aus dem Code kopiert)

2.) Ich habe keine PHP UraltVersion (PHP 4.3.1)
3.) Und wieso sollte ich mich nicht um meinen Server kümmern?
Wenn du meine Syntax anzweifelst, würde mich interessieren was dran falsch ist! Ich persönlich bevorzuge z.B. einfach die klassische for Schleife falls es das ist, was du meinst. Was spricht ebenso dagegen, Anführungszeichen bei echo zu verwenden und die dazwischen zu quoten?

Doch jetzt zu meiner Frage. Es will einfach nicht klappen. Ganz präzise:

Die Formularseite liest eine mySQL Datenbank aus. In dieser Datenbank stehen verschiedene "Features" für ein Programm.
Auf der Formularseite soll man nun auswählen können, WELCHE Features das Programm nun haben soll. Dabei hilft's mir nix, wenn ich irgendwie lauter "on" als Output kriege. Ich will wissen, welche IDs die Elemente haben.
Also die Tabelle könnte so aussehen:

1 1 1
2 1 7
3 1 11
(...)

Die erste Spalte ist eine ID (egal). Die zweite Spalte die ID zu einem Programm (ein Programm kann variabel viele Features haben, in diesem Fall hat das Programm mit der ID 1 3 Features). Die dritte Spalte gibt die FeaturesID an (wieder eine Referenz auf eine andre Tabelle. Also das Programm1 hat die Features 1, 7, 11.

Auf der Seite sollen nun *alle* Features, die es gibt als Checkboxen angezeigt werden. Zusätzlich sollen die Features mit der ID 1, 7, 11 bereits vorgewählt sein.

Der Benutzer soll jetzt *irgendwelche* Features wählen können. Action-Script will ich nun wissen *welche* Features gewählt wurden.
Erschwerend kommt auch noch hinzu, dass die IDs für die Features auch 983645, 34597324 oder 34956345 sein könnten.

Ist jetzt klar, was ich meine??

Peter

PS: Wenn mir PHP eine Array mit allen Werten (nicht nur den, die gecheckt sind) geben würde, dann könnte ich ein weiteres hidden Element anbringen, das die IDs enthält. Dadurch, dass jetzt aber das erste Array immer nur so viele Elemente hat, wie gewählt wurden und nicht so viele, wie es insgesamt gibt, sind die beiden Arrays nicht synchron und ich kann nicht feststellen, welche IDs gewählt worden sind. Anders bräuchte ich nur den folgenden Code:

for($i = 0; $i < count($Features); $i++)
{
  if($Feature[$i] == "on")
  {
    echo "ID $FeatureID[$i] wurde gewählt!\n";
  }
}

for($i = 0; $i < count($sch); $i++)
{
  echo "<input type="checkbox" name="Feature[]"> ".$sch[$i][1]."\n";
  echo "<input type=hidden name="FeatureID[]" value="".$sch[$i][0]."">";
}

($sch ist ein zweidimensionales Array, das ALLE Features enthält. Die Zeilen sind die verschiedenen Features, die erste Spalte die ID für das Feature, die zweite Spalte der Name.