Checkboxwert auslesen bereitet Probleme

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Checkboxwert auslesen bereitet Probleme

    Hallo, mal wieder ein kleines größeres Realisierungsproblem.

    PHP-Code:

    $result 
    mysql_query("SELECT Firma, angebot$angebot FROM 
    angebote where runde = 
    $Runde");  

    $i=1;

    while (
    $row mysql_fetch_row ($result)) { 
    echo 
    "<tr><td>" $row[0] . "</td>"
    echo 
    "<td>" $row[1] . "</td>"
    echo 
    "<td><input type=checkbox name=auswahl".$i."></td>"
    echo 
    "<td><input type=hidden name=zaehler value=zaehler".$i."></td>"$i++;} 
    Also, das Skript fragt in einer Datenbank Datensätze ab. Es bekommt eine vorher unbekannte Menge an Ergebnissen. Ich habe an jeden Datensatz eine Checkbox drangehängt. Den Datensatz den man weiterverarbeiten möchte wählt man mittels Checkbox aus und schickt ihn weg. Da ja der ausgewählte Datensatz der 10. aber auch der 100. sein kann, habe ich noch einen Zähler eingebaut.

    -> gesendet an dieses Skript:

    PHP-Code:

    extract
    ($_POSTEXTR_OVERWRITE);

    $checkbox=on;
    $j=1;

    while (
    $auswahl.$j != $checkbox)
    {
    $j++;
    }

    echo 
    $j
    Laut diverser Quellen liefert das Formularelement Checkbox den Wert On, wenn das Häkchen gesetzt ist. Also habe ich kurzerhand einer Variable den Wert On zugewiesen. In der While-Schleife soll er nun fragen, welche gesendete Variable "Auswahl" (siehe oberes Skript) den Wert ON hat.
    Es kann in der ganzen Reihe nur eine Checkbox gesetzt sein. Also die While-Schleife soll wirklich nur bis zur gesetzten Checkbox durchlaufen und dann die Datensatz nummer rausgeben.

    Es ist schon spät, ich denke mal den Algorithmus habe ich schon so korrekt entwickelt, aber an der techn. Umsetzung mangelt es jetzt. Vielen Dank für Anregungen und Tips. MfG Simauki

  • #2
    $checkbox=on;
    on ist bei dir eine konstante

    ON != on != On

    ^^ du verstehst?

    tipp ... verwende als value für deine checkbox eine '1'
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Hallo, der Wert 1 für die Checkbox bringts doch eigentlich nicht, weil ja dann alle 10 oder 100 Checkboxen den Wert 1 haben, egal ob gesetzt oder nicht. Deshalb habe ich bewußt auf einen Value bei der Checkbox verzichtet. Bei mir heißt die Checkbox bedingt durch den Zähler auswahl1 Wert off, auswahl2 Wert off, auswahl3 wert on...... Oder sehe ich das falsch? Mfg Simauki

      Kommentar


      • #4
        Original geschrieben von simauki
        Hallo, der Wert 1 für die Checkbox bringts doch eigentlich nicht, weil ja dann alle 10 oder 100 Checkboxen den Wert 1 haben, egal ob gesetzt oder nicht.
        Für nicht angekreuzte Checkboxen wird überhaupt kein Wert übermittelt.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hallo, wir haben es fast. Die hoffentlich letzte Frage ist:

          PHP-Code:
          <input type=checkbox name=auswahl".$i." value=1
          Wenn man das Formular jetzt sendet wird ja aus auswahl".$i." -> auswahl1, auswahl2, auswahl3.....

          In diesen Variablen wird ja dann der Wert der Checkbox, also 1 oder nichts gespeichert.

          Wie bekomme ich im 2. Skript:

          PHP-Code:

          extract
          ($_POSTEXTR_OVERWRITE);

          $wert=1;
          $j=1;

          while (
          $auswahl.$j != $wert)
          {
          $j++;
          }

          echo 
          $j
          die Variable so wieder zusammengesetzt das, sie mit den Variablen auswahl1, auswahl2.... aus dem 1. Skript korrespondiert?

          so? $auswahl.$j
          so? $(auswahl).$j
          oder wie?????

          MfG Simauki

          Kommentar


          • #6
            schaust du ins manual oder benutzt die suche nach "variablen variablen" ... oder du arbeitest gleich mit einem array.
            Kissolino.com

            Kommentar


            • #7
              Hallo, das bei Variablen Variablen versteh ich überhaupt nicht. Kannst Du mir nicht netterweise den korrekten Terminus sagen, damit in der While-Schleife als zusammengesetzte Variable eben auswahl1 steht. MfG Simauki

              Kommentar


              • #8
                http://tut.php-q.net/formulare.html#u13 gelesen?
                mal ausprobieren, danach print_r($_POST); gucken - vieles erklärt sich von allein!

                Kommentar


                • #9
                  Hallo, das ist doch gar nicht mein Problem. Ich möchte gern wissen, wie man aus einem String -> auswahl und einer Variable -> $j (der Zähler) eine Variable bastelt. Aus dem Formular kommen ja die Variablen auswahl1....auswahln. Und in der While-Schleife des Skriptes möchte ich ja den vom Formular übergebenen Wert vergleichen. Und dafür möchte ich eine Variable die aus auswahl und $j besteht, erzeugen. Ich weiß nur nicht wie man die zusammenbaut. MfG Simauki

                  Kommentar


                  • #10
                    dein problem besteht genau darin, dass du dir das leben schwer machst und die checkboxen bereits unterschiedlich benennst, was falsch ist.

                    wenn der name stets
                    Code:
                    irgendwas[]
                    lautet, erhältst du ein einfaches array im $_POST, in dem du die elemente beliebig ansprechen kannst, ganz ohne unnützliches zusammensetzen von strings.

                    Kommentar


                    • #11
                      Hallo, meinst Du auswahl[$j], sodas dann eben auswahl[1], auswahl[2]... übergeben wird?

                      Wie muß denn dann die Syntax dafür heißen?

                      PHP-Code:
                      <input type=checkbox name=auswahl".[$i]." value=1
                      MfG Simauki

                      Kommentar


                      • #12
                        grünau
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          so wie es im artikel steht:
                          Code:
                          <input type="checkbox" name="xyz[]" />

                          Kommentar


                          • #14
                            Hallo, es klappt so. Noch eine Frage zum Schluß. Ich weiß nun, welcher Datensatz manipuliert werden soll. Jedoch weiß ich noch nicht, wie ich es realisieren kann, das er nur den i-ten Datensatz ausgibt. Also laut Zähler weiß ich das der 7. Datensatz per Checkbox ausgewählt wurde. Mit welchem Befehl bringe ich das Skript nun dazu, auch den 7. Datensatz auszugeben. mysql_query liefert ja immer ein Array zurück. Mit welchem mysql_fetch_???? kann ich mit nun genau den 7. Datensatz anzeigen lassen? MfG Simauki

                            Kommentar


                            • #15
                              Indem du in deiner Checkbox eine ID hinterlegst anhand du deinen Datensatz ausfindig machen kannst. Mysql kann leider nicht so wirklich was damit anfangen wenn du ihm sagst "Gib mir bitte mal den 7ten Datensatz dieser Tabell". Was ist wenn sich die Tabelle zwischenzeitliche geändert hat?


                              Btw: Gewöhn dir bitte an die Attribute in HTML auch mit " zum umschließen.
                              PHP-Code:
                              <input type="checkbox" name="foo" value="bar" /> 

                              Kommentar

                              Lädt...
                              X