lulu: update mittels checkboxen

Hi Leute,

ich hab folgendes Problem:
Ich lass mir auf einer HTML Seite alle Einträge meiner DB anzeigen.
Die Einträge der DB erscheinen in Textfeldern, so dass man diese auf der HTML Seite ändern kann und beim Submitten die Einträge der DB aktualisiert werden.
Momentan kann man die Zeile (auf der HTML Seite), wo in der der Eintrag verändert werden soll angeklicken, miitels checkboxen.
Das Problem ist ,dass mein Array nur Eintäge enthält, wo die checkbox angeklickt ist, dadurch geht der Bezug zum Textfeld verloren und es ist kein update möglich.
Wie schaff ich es alle nicht angeklickten checkboxen auf 0 zu setzten. Dann könnt ich nämlich in einer Schleife alle angeklickten checkboxen bearbeiten.

Kann mir jemand helfen???

Gruss lulu

  1. Hello,

    wieso fragst Du das nochmal?
    Ich hatte Die eine Lösung gepostet. Hast Du sie dir denn wenigsten angeschaut?

    Ist leider schon im Archiv und das antwortet nicht.

    Grüße

    Tom

    1. Oh sorry, ich war seit dem nicht im Netz und dachte du hättest nicht geantwortet.
      Mit dem Löschen hab ichs schon hinbekommen, jetzt hab ich ein etwas anderes Problem.

      1. Hello,

        Oh sorry, ich war seit dem nicht im Netz und dachte du hättest nicht geantwortet.

        Wenn ich 'was verspreche, halte ich es auch. Auch wenn ich mich zwischendurch dann mal anderen Themen widme *grunz* (Info an die Anderen: interessiert mich dann in Zukunft nicht mehr die Bohne)

        Mit dem Löschen hab ichs schon hinbekommen, jetzt hab ich ein etwas anderes Problem.

        Schau Dir aber auf jeden Fall noch das Muster an. Daraus kannst Du dann alle anderen Anwendungsfälle entwickeln. Und wenn Du MIR sagst, was man denn alles tolles gebrauchen könnte, dann hast Du mir damit auch sehr weitergeholfen. Musst also keine Skrupel haben, danach zu fragen. Ich muss da nämlich seit zwei Monaten so'n Universaldingsbums entwicklen und mir fehlen einfach nur die Ideen für die Anforderungen.

        Grüße

        Tom

        1. Mach ich, hab ganz viele Ideen für das, was ich mache.
          Worum gehts genau bei deiner Sache?

          1. Hello Lulu,

            Mach ich, hab ganz viele Ideen für das, was ich mache.
            Worum gehts genau bei deiner Sache?

            Da gabs auch irgendwo einen Thread. Ich sollte mir mal angewöhnen, die URi aufzuschreiben.

            Na nochmal in Kladde. Dein Anwendungsfall kommt dem schon sehr nah.

            Man hat verschiedene Tabellen in einer Datenbank.
            Die sind zum Teil relational voneinander abhängig.

            Kunden
               Rechnung
                   Rechnungsposition
                       Artikel

            Vorgangsbeschreibung:
            Man will eine Rechnung schreiben
            Dafür benötigt man aber die Kundendaten. Muss man nachschlagen können.
            Für das Nachschlagen benötigt man eine Listenfunktion für die Tabelle Kunden der DB, da ein Optiofeld bei z.B. 2000 Kunden nicht mehr geht (>300kByte Daten)

            Wenn der Kunde in der Tabelle steht, will man sicher im Listobjekt noch angeben können, wie der ungefähr heißt, also

            Dann soll die Liste angezeigt werden in z.B. zwanzigerschrtitten

            Name   | Vorname   | PLZ  | Ort

            Wenn man ihn gefunden hat, will man vielleicht alle Daten sehen, um nochmal den Rabatt zu überprüfen (Das ist Dein Anwendungsfall mit dem EDIT). Oder wenn man beim Blättern ne Lieche entdeckt, will man die vielleicht gleich löschen (Löschen haten wir schon, funktioniert)
            Wenn bei den 20 der Kunde noch nicht dabei ist, weil die alle Meier heißen, dann will man vielleicht nur die Meiers aus PLZ=38??? sehen.

            -> Filter setzen

            Und dann muss man vielleicht trotzdem noch blättern

            -> Blättern

            Und wenn man den richtigen dann gewählt hat, will man ihn bestimmt an das rechnungsformular übergeben, um dort endlich weiterarbeiten zu können.

            Nun ist mein Anliegen, alle Anforderungen, die da sinnvoll sein könnten, zu ermitteln, umn sie dann ins Konzept einbauen zu können. Das Programmieen selber ist nicht so schwer, die Ergonomie einer solchen Lösung szu gestalten schon mehr.

            Grüße

            Tom

  2. Hi,

    Du moechtest Aktualisierungen von Datensaetzen in Abhaengigkeit einer bestimmten Bedingung durchfuehren, die auf einer Auswertung einer Benutzereingabe beruht. In diesem Fall eine Checkbox, die ja vermutlich auf irgendeine Art und Weise an den Datensatz, bzw. an dessen ID, gebunden ist.

    Hat der Nutzer Aenderungen durchgefuehrt, betaetigt er Checkboxen und letztendlich das Submit-Button. Die Daten werden daraufhin uebertragen und ausgewertet, auch und gerade der Wert der Checkbox.

    Was klappt denn nicht? Die Bindung der Checkboxen an den Datensatz?

    Gruss,
    Lude

    1. Ja genau, die Bindung an den Datensatz geht verloren, dadurch, dass alle gecheckten sich in dem Array befinden. Nur wegen der Bindung kann ich nicht aktualisieren, weil er nicht recht weiss wo.

      Gruss lulu

      1. Hello,

        Ja genau, die Bindung an den Datensatz geht verloren, dadurch, dass alle gecheckten sich in dem Array befinden. Nur wegen der Bindung kann ich nicht aktualisieren, weil er nicht recht weiss wo.

        Dann gehe ich jetzt davon aus, dass Du das Beispiel für's Listenlöschen gelesen hast und es einfach nur auf das Editieren übertragen wolltest? Dafür solltest Du
        1. statt Checkboxen Radio-Input benutzen.
        2. einen anderern Namen für das Input-Element vergeben
        3. die Logik mit Session, Angebot, Annahme und Aktion im
           Wesentlichen beibehalten, nur eben zur Sicherheit nur den ersten
           Treffer aus der Radio-Liste / Auslieferungsliste benutzen
        4. Für die Editierung wieder ein neues Fenster (kann auch nur eine
           neue Datei im sleben Fesnter sein) aufmachen und wieder
           die ausgelieferte ID in die Session eintragen. Wenn man dann auf
           den entsprechnden Submitbutton klickt, wird vom Editscript wieder
           erst geschaut, ob die ID denn überhaupt in der Sessionssteht und
           wenn ja, das Update durchführen.

        Nur so schützt Du dich wirkungsvoll gegen Fehlbedienung und Hackversuche.

        Grüße

        Tom

  3. Huhu lulu

    offenbar hast Du Den Fortgang Deines ersten Postings zum Thema
    [http://forum.de.selfhtml.org/archiv/2003/11/62991/]
    nicht weiter verfolgt.

    Daher nehme ich an Du hast mein Posting
    http://forum.de.selfhtml.org/archiv/2003/11/62991/#m356861
    auch nicht gesehen.

    Dort schrieb ich

    <quote>
    Huhu lulu

    es sei Dir natürlich unbenommen den schönen Namen lulu als Nick zu wählen.
    Wenn Du allerdings vorhast öfter hier zu posten würde ich es begrüssen
    wenn Du Dir etwas überlegst damit man uns unterscheiden kann.
    Z.B. Lulu mit grossem "L".

    </quote>

    wie denkst Du darüber?

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Wenn du genau hinschaust, hab ich in meinem letzten Posting bereits ein grosses L verwendet.
      Ich hab keine Problem damit!!!!!!!!
      Nicht aufregen

      Gruss Lulu

      1. Huhu Lulu

        Wenn du genau hinschaust, hab ich in meinem letzten Posting bereits ein grosses L verwendet.

        ich hab es gesehen.

        Ich hab keine Problem damit!!!!!!!!

        Deine Tastatur klemmt, einfach mal die Keskkrümmel rausschütteln ;-)

        Nicht aufregen

        aufregen sieht bei mir anders aus.

        Viele Grüße

        lulu

        --
        bythewaythewebsuxgoofflineandenjoytheday
    2. Hi,

      es sei Dir natürlich unbenommen den schönen Namen lulu als Nick zu wählen.
      Wenn Du allerdings vorhast öfter hier zu posten würde ich es begrüssen
      wenn Du Dir etwas überlegst damit man uns unterscheiden kann.
      Z.B. Lulu mit grossem "L".

      was heisst 'lulu' eigentlich und was 'Lulu'?

      Gruss,
      Lude

      PS: Dank http://www.duden.de wissen wir dann doch noch Folgendes:

      Wedekind, Frank, deutscher Dichter, * 1864, &#8224; 1918; satirischer Dramatiker, suchte die konventionelle bürgerliche Moral als Unmoral zu enthüllen. »Frühlings Erwachen« (1891), »Erdgeist« (1895; 1903 als »Lulu«, Oper von A. Berg); auch Prosa und Lyrik. Seine Stücke waren bedeutsam für die Weiterentwicklung des deutschen Dramas.

      Quelle: Der Brockhaus in einem Band

  4. Hello Lulu (groß),

    dank lulu ist http://forum.de.selfhtml.org/archiv/2003/11/62991/#m356727 wieder aufgetaucht. Ich konnte ihn nicht finden eben.

    Probier's mal aus.

    Grüße

    Tom

    1. Huhu Tom

      dank lulu ist http://forum.de.selfhtml.org/archiv/2003/11/62991/#m356727 wieder aufgetaucht. Ich konnte ihn nicht finden eben.

      Das hab ich selbst auch gerade erst neu gelernt.
      Da der Index der Archiv-Suche vermutlich nächtens aktualisiert wird
      war der Beitrag noch nicht per Suche auffindbar.
      Aber die Systematik des Archives ist so einfach wie logisch nämlich:

      http://forum.de.selfhtml.org/archiv/dasjahr/derMonat/

      also im Moment

      http://forum.de.selfhtml.org/archiv/2003/11/

      und man bekommt eine Übersicht aller archivierten Threads des jeweiligen Monats.

      Viele Grüße

      lulu

      --
      bythewaythewebsuxgoofflineandenjoytheday
      1. Helo lulu,

        Aber die Systematik des Archives ist so einfach wie logisch nämlich:

        http://forum.de.selfhtml.org/archiv/dasjahr/derMonat/

        also im Moment

        http://forum.de.selfhtml.org/archiv/2003/11/

        und man bekommt eine Übersicht aller archivierten Threads des jeweiligen Monats.

        Hab Dank, das wird mir helfen. Pinne ich gleich an die Wand.

        Grüße

        Tom

        1. Hey Tom,

          also, das Löschen funktioniert so wie ich es hab, so wie dus hast krieg ichs nicht hin.
          Interesse meine Version zu sehen?

          Ich weiss aber nicht recht was ich jetzt für die update Anweisung verändern muss.

          Gruss Lulu

          1. Hello,

            also, das Löschen funktioniert so wie ich es hab, so wie dus hast krieg ichs nicht hin.

            Die Version ist aber lauffähig. Musst nur die DB haben mit der Tabelle TEST und dann dei Spalten ID_TEST, VARC und ZAHL

            Interesse meine Version zu sehen?

            Ja klar.

            Ich weiss aber nicht recht was ich jetzt für die update Anweisung verändern muss.

            Schau ich mir dann an.

            Grüße

            Tom

            1. Hi,

              BITTESCHÖÖN:

              <?php

              if($_POST['submit']) {
              $db=mysql_connect("localhost","root","");
              $select=mysql_select_db("ConferenceSystem",$db);
              // Wenn der Submit-Button geklickt wurde ...
              //Die Anzahl der markierten Datensaetze ermitteln
              $y=count($_POST['loeschen']);
               // Für jeden markierten Datensatz
              // den delete-Befehl aufrufen.

              for($x=0;$x<$y;$x++) {
              $datensatz_id = $_POST['loeschen'][$x];
              mysql_query("delete from reviewer where person_ID='$datensatz_id'");
              mysql_query("delete from person where ID='$datensatz_id'");
              }
              }     ?>
               .
               .
               .
               .

              $query = "SELECT surname, email, comments, person.ID, reviewer.person_ID FROM person, reviewer WHERE person.ID = reviewer.person_ID";
                $result=mysql_query($query,$db);

              if(!$result)
                {
                die("Fehler bei Abfrage!");
                }
                while ($row = mysql_fetch_assoc($result))

              {
                $ID=$row["ID"];
                $surname=$row["surname"];
                $name=$row["name"];
                $email=$row["email"];
                $comments=$row["comments"];

              echo "<tr bgcolor=#DFE2DE><td><input type=checkbox name=loeschen[] value=$ID ></td>";
                echo"<td><input type=text name=Surname[] value=$surname size=30></td>";
                echo"<td><input type=text name=Email[] value=$email size=30></td>";
                echo "<td><input type=text name=Comments[] value=$comments></td>";
                echo "<td><input type=text name=id[] value=$ID></td>";

              }
              ?>
               .
               .
               .
              <input type="submit" name="submit" value="Löschen">

              </table>

              Da bin ich ja mal gespannt.

              Liebe Grüsse Lulu

              1. Hi,

                BITTESCHÖÖN:

                <?php

                if($_POST['submit']) {
                $db=mysql_connect("localhost","root","");
                $select=mysql_select_db("ConferenceSystem",$db);
                // Wenn der Submit-Button geklickt wurde ...
                //Die Anzahl der markierten Datensaetze ermitteln
                $y=count($_POST['loeschen']);
                 // Für jeden markierten Datensatz
                // den delete-Befehl aufrufen.

                Es ist eleganter, alle zu löschenden IDs in einer Query zu übergeben.
                Das geht entweder mit mehreren ORs oder mit "ID IN( Liste )"

                for($x=0;$x<$y;$x++) {
                $datensatz_id = $_POST['loeschen'][$x];
                mysql_query("delete from reviewer where person_ID='$datensatz_id'");
                mysql_query("delete from person where ID='$datensatz_id'");
                }
                }     ?>
                 .

                Du hast keinerlei Sicherheit. Jedermann kann Dir die ganze DB löschen.

                Wenn kein "submit" dann gibts keine Connection zur DB

                $query = "SELECT surname, email, comments, person.ID, reviewer.person_ID FROM person, reviewer WHERE person.ID = reviewer.person_ID";
                  $result=mysql_query($query,$db);

                if(!$result)
                  {
                  die("Fehler bei Abfrage!");
                  }
                  while ($row = mysql_fetch_assoc($result))

                {
                  $ID=$row["ID"];
                  $surname=$row["surname"];
                  $name=$row["name"];
                  $email=$row["email"];
                  $comments=$row["comments"];

                echo "<tr bgcolor=#DFE2DE><td><input type=checkbox name=loeschen[] value=$ID ></td>";

                den Datenfeldern braucht man eigentlich gar keine Namen zu geben. Und Input-Objekte müssen das ja auch nicht sein.

                echo"<td><input type=text name=Surname[] value=$surname size=30></td>";
                  echo"<td><input type=text name=Email[] value=$email size=30></td>";
                  echo "<td><input type=text name=Comments[] value=$comments></td>";
                  echo "<td><input type=text name=id[] value=$ID></td>";

                }
                ?>
                 .
                 .
                 .
                <input type="submit" name="submit" value="Löschen">

                </table>

                table ist nicht geöffnet
                form ist nicht geöffnet
                form ist nicht geschlossen

                Mhh. Nörgeln kann jeder. Wenn Du es selber gemacht hast, schon ganz gut. Aber eben nicht perfekt. Musst noch ein bisschen dran schnitzen. Und solche Aufgaben sollte man nie ohne Session (Autentifizierung) lösen.

                Grundregel: Nur was rausgeschickt wurde, darf auch wieder reinkommen.
                            (frei übersetzt)

                Grüße

                Tom

    2. Hi Tom,

      danke, schaus mir an, mal sehen ob ichs schaff.
      Bin Freitag 100 pro wieder da.

      Sorry wegen lulu und Lulu.
      Musste mich in Lulu umbenennen,  hat sich jemand aufgeregt.