update mittels checkboxen
lulu
- php
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
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
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.
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
Mach ich, hab ganz viele Ideen für das, was ich mache.
Worum gehts genau bei deiner Sache?
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
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
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
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
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
Wenn du genau hinschaust, hab ich in meinem letzten Posting bereits ein grosses L verwendet.
Ich hab keine Problem damit!!!!!!!!
Nicht aufregen
Gruss Lulu
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
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, † 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
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
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
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
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
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
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
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
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.