shinkou: auslesen der werte von checkboxen verschiedener namen

Hi Leute!

Ich hab eine Auflistung von Leuten gemacht, und jedem eine Checkbox mit  dem Namen "tosend" gegeben. Der Wert der Checkbox ist die jeweilige
ID der Person. Ich mache mit Hilfe einer kleinen Schleife ein Pseudo-Array aus denjenigen Werten, die angehakt wurden.
Dies erfolgt mit folgender Schleife:

if (isset($_REQUEST['tosend'])) {
  reset($_REQUEST['tosend']);
  foreach ($_REQUEST['tosend'] as $sended) {
    $_var = array($sended);
if ($i == "0") {
 $liste_id = $sended;
} else {
$liste_id = $liste_id.";".$sended;
}
  }
} else {
  print "<span class='title1'>Es wurden keine Empfänger ausgewählt!</span>";
}

Diese Schleife und die weitere Verarbeitung funktioniert auch perfekt.
Nun habe ich einen ähnlichen Fall, wo jedoch die Checkboxen verschieden heissen, jedoch der gleiche Effekt erzielt werden soll.
Ein Beispiel einer Checkbox ist:

<input type='checkbox' name='grp_Manager' value='1'>

Die Namen der Checkboxen kommen dynamisch aus einer Datenbank und sind die jeweiligen Spaltenüberschriften. Dies ist leider unveränderbar, da sonst das gesamte Programm umgeschrieben werden müsste, würde ich das verändern.

Die einzige Gemeinsamkeit der Checkboxen liegt darin, dass sie alle mit grp_ beginnen.

Ich brauche im Endeffekt eine Liste derjenigen Checkboxen und damit meine ich die Namen der Checkboxen, die den Wert 1 haben, gespeichert in einer Variable, wie ich es jetzt bereits mit obigem Skript mache.

Meine Frage nun:
Wie kann ich das realisieren, ich hab überhaupt keine Ideen...
Kann mir da jemand helfen??

Danke,
shinkou

  1. Hello,

    warum nennst Du das Input-Element nicht

    <input type="checkbox" name="person[]" value="569135">

    Dann kommt in PHP ein Array an:

    echo "<pre>";
      print_r($_POST['person']);
      echo "</pre>";

    Und damit kann man dann doch gut weiterarbeiten

    foreach($_POST['person'] as $person)
      {

    }

    Wenn hier allerdings Lösch- oder Update-Operationen durchgeführt werden, tust Du die einen großen Gefallen, wenn due die im Formular angebotenen Personen-IDs auch in die Session einträgst und bei einem entsprechenden Request (Löschen) erstmal überprüfst, ob Du die ID überhaupt zum Löschen angeboten hattest. Sonnst könnte man Dir leicht die ganze Tabelle killen.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. Hi there!

      Mir geht's hierbei gar nicht um die Personen, sondern um die Grupppen.
      Ich hab den ersten teil nur zwecks dem Verständnis meines Problemes gepostet.

      Wie gesagt, im Prinzip hab ich das Problem, dass ich name der gruppe und die information ob value 1 oder 0 ist, übermitteln muss.
      erschwerend kommt noch hinzu, dass der name der gruppe immer verschiedn ist, jedoch immer mit grp_ beginnt...

      beste grüeß,
      shinkou

      1. Hello,

        ... dasgeht doch genauso:

        <input type='checkbox' name='chk[grp][Manager]' value='1'>
        <input type='checkbox' name='chk[grp][User]' value='1'>
        <input type='checkbox' name='chk[grp][KalleArsch]' value='1'>

        im Script wieder

        $_berechtigung = &$_POST['chk']['grp'];

        if (isset($_berechtigung['Manager'] and $_berechtigung['Manager'] ==1)
            {
              $_rights[$user]['Manager'] = 1
              #...
            }
            else
            {
              $_rights[$user]['Manager'] = 0;
            }

        if (isset($_berechtigung['User'] and $_berechtigung['User'] ==1)
            {

        }
            else
            {

        }

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        1. Moin!
          vorsicht, du hast bei isset() immer die 2. klammer vergessen.

          if (isset($_berechtigung['Manager'] and $_berechtigung['Manager'] ==1 )

          ani

          --
          Wer mit sich selber
          in Frieden lebt,
          kommt nicht in Versuchung,
          anderen den Krieg zu erklären.
          1. Hello,

            Moin!
            vorsicht, du hast bei isset() immer die 2. klammer vergessen.

            if (isset($_berechtigung['Manager'] and $_berechtigung['Manager'] ==1 )

            Ich hatte ja auch nicht versprochen, einen lauffähiges Fertigscript zu liefern, sonder eine Skizze. Wer hier Fragen zu PHP stellt, sollte solch einen Fehler selber beseitigen können. Aber natürlich trotzdem danke für den Hinweis.

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen