Soße: doppelvariable

Halle,

Ich habe eine Checkbox die über eine schleife den laufenden namen
checkbox+nr hat also fortlaufend

checkbox-149
checkbox-150
checkbox-151
usw

jeweils mit dem wert der nr also

checkbox-149 hat den wert 149
checkbox-150 hat den wert 150
checkbox-151 hat den wert 151

bei übergabe ensteht, je nach dem was angeklickt wurde, die variablen:
$checkbox149 mit dem wert=149
$checkbox150 mit dem wert=150
usw

wie prüfe ich jetzt über eine if abfrage was angeklickt wurde
(die schleife mit den inhalten der nummern geht ! also es existiert immer ein array wo drin steht 149,150,151)
if($checkbox-$nr == $nr){
geht ja nicht, weil es 2 variablen sind.

wie macht man das ?

Danko

  1. Hallihallo,

    ich weiß es...
    Schaun wir mal, wer Dir antwortet

    A.

  2. Halle,

    Ich habe eine Checkbox die über eine schleife den laufenden namen
    checkbox+nr hat also fortlaufend

    checkbox-149
    checkbox-150
    checkbox-151
    usw

    jeweils mit dem wert der nr also

    checkbox-149 hat den wert 149
    checkbox-150 hat den wert 150
    checkbox-151 hat den wert 151

    bei übergabe ensteht, je nach dem was angeklickt wurde, die variablen:
    $checkbox149 mit dem wert=149
    $checkbox150 mit dem wert=150
    usw

    wie prüfe ich jetzt über eine if abfrage was angeklickt wurde
    (die schleife mit den inhalten der nummern geht ! also es existiert immer ein array wo drin steht 149,150,151)
    if($checkbox-$nr == $nr){
    geht ja nicht, weil es 2 variablen sind.

    wie macht man das ?

    Danko

    Hi,

    die Checkbox heißt "checkbox-149" ?

    ich würde ein Schleife über alle gesendeten Formularelemente vorschlagen und dann mittels SubString die Nummer daherkratzen.
    Aber keine Ahnung, wie man dies genau in PHP täte. Ich wende aber ein ähnliches Schema bei gewissen ASP-Sites an.

    Gruß, Frank

    1. Halle,

      Ich habe eine Checkbox die über eine schleife den laufenden namen
      checkbox+nr hat also fortlaufend

      checkbox-149
      checkbox-150
      checkbox-151
      usw

      jeweils mit dem wert der nr also

      checkbox-149 hat den wert 149
      checkbox-150 hat den wert 150
      checkbox-151 hat den wert 151

      bei übergabe ensteht, je nach dem was angeklickt wurde, die variablen:
      $checkbox149 mit dem wert=149
      $checkbox150 mit dem wert=150
      usw

      wie prüfe ich jetzt über eine if abfrage was angeklickt wurde
      (die schleife mit den inhalten der nummern geht ! also es existiert immer ein array wo drin steht 149,150,151)
      if($checkbox-$nr == $nr){
      geht ja nicht, weil es 2 variablen sind.

      wie macht man das ?

      Danko

      Hi,

      die Checkbox heißt "checkbox-149" ?

      ich würde ein Schleife über alle gesendeten Formularelemente vorschlagen und dann mittels SubString die Nummer daherkratzen.

      warum so kompliziert???
      so durchläufst du alle gesendeten checkboxen...
      wenn du natürlich noch was anderes als checkboxen verwendest muss du doch "daherkratzen" (s.o.)

      foreach ($HTTP_GET_VARS as $key => $value) {
        echo "Schlüssel: $key; Wert: $value<br>\n";
      }

      Gruss
      horst

      1. Gebts zu ihr wisst es nicht:

        Das ist doch wohl mal das komplizierteste von allen:

        foreach ($HTTP_GET_VARS as $key => $value) {
          echo "Schlüssel: $key; Wert: $value<br>\n";
        }

        ich löse auf (es war nur ein test):

        <?php

        $i =lo;
        $line = "hal".$i;
        $$line = 'so gehts !';

        print "i= $i<br>";
        print "line= $line<br>";
        print "lline= $$line<br>";
        print "hallo= $hallo<br>";
        ?>

        ausgabe:
        i= lo
        line= hallo
        lline = $hallo
        hallo = so gehts !

        !!!!!!!

        1. einfach weltbewegend kleiner egofresser...

        2. Zum Glück sind die Herbstferien ja bald zu Ende ...
          <img src="/images/13.gif" width=468 height=60 border=0 alt="Don't feed the trolls">

        3. Gebts zu ihr wisst es nicht:

          Das ist doch wohl mal das komplizierteste von allen:

          foreach ($HTTP_GET_VARS as $key => $value) {
            echo "Schlüssel: $key; Wert: $value<br>\n";
          }

          ich löse auf (es war nur ein test):

          <?php

          $i =lo;
          $line = "hal".$i;
          $$line = 'so gehts !';

          print "i= $i<br>";
          print "line= $line<br>";
          print "lline= $$line<br>";
          print "hallo= $hallo<br>";
          ?>

          ausgabe:
          i= lo
          line= hallo
          lline = $hallo
          hallo = so gehts !

          das es variable variablennamen gibt weiss ich schon, bloss
          wolltest du doch wissen wie man prüft welche variablen gesetzt sind
          ... wo liegt hier denn der vorteil/ ist es einfacher?
          wo würdest du denn die variablen variablen anlegen?
          und woher weisst du welche variablen variablen du anlegen musst??
          da ja mehrere checkboxen aktiviert sein können...

          hmmm

          1. ich prüfe ob ein die jeweilige checkbox auch den jeweiligen wert hat und wenn keine checkboxen angeklickt wurden sind, dann kann die abfrage nur als false ausgehen und wenn was angeklickt wurde dann ist der wert der checkbox auch gleich der wert den ich in der abfrage abfrage und somit true.
            ganz einfach.

  3. Moin!

    Ich habe eine Checkbox die über eine schleife den laufenden namen
    checkbox+nr hat also fortlaufend

    checkbox-149
    checkbox-150
    checkbox-151
    usw

    jeweils mit dem wert der nr also

    checkbox-149 hat den wert 149
    checkbox-150 hat den wert 150
    checkbox-151 hat den wert 151

    Ist das nicht reichlich redundant? Die Nummer steck sowohl im Namen, als auch im Wert. Ich nehme mal an, du generierst solchen HTML-Code:
    <input type="checkbox" name="checkbox-149" value="149">
    ...

    Diese Vorgehensweise ist suboptimal. Aber du kannst dich eines Tricks bedienen, der bei PHP gut funktioniert:

    1. Möglichkeit: Wenn du (der Name deutet es an) ein Array als Ergebnis haben willst, dann kannst du der Checkbox einen Arraynamen geben:

    <input type="checkbox" name="checkbox[149]" value="149 - oder was anderes">

    Dann kriegst du in PHP ein Array namens $checkbox, welches an Position 149 den Wert "149 - oder was anderes" hat.

    2. Wenn es dir nur darauf ankommt, dass du aus einer Reihe von Zahlen ein paar ankreuzen kannst, um mit diesen dann weiterzuarbeiten, wähle Variante 2:

    <input type="checkbox" name="checkbox[]" value="149">

    Dadurch erhälst du wieder ein Array $checkbox, welches aber vom Index Null beginnend aufgefüllt wird. Wenn Kästchen 149 das einzige angekreuzte Kästchen ist, besteht das Array aus:
    $checkbox[0]=149;

    Wenn auch noch Checkbox 163 angekreuzt ist, sieht es so aus:
    $checkbox[0]=149;
    $checkbox[1]=163;

    Wenn auch Checkbox 10 angekreuzt ist:
    $checkbox[0]=10;
    $checkbox[1]=149;
    $checkbox[2]=163;

    In jedem Fall kannst du mit einer Schleife das gesamte Array durchgehen, alle Zahlen ermitteln und mit denen dann irgendwas machen.

    Wenn du lieber deinen eigenen Ansatz mit dem zusammengesetzten Arraynamen weiterverfolgen willst (was ich nicht empfehle, weil es für sowas eben Arrays gibt):

    $varname = "checkbox-".$nr;
    echo $$varname; # gibt die Variable aus, deren Name in $varname steht.

    - Sven Rautenberg