wildertroll Geschrieben 13. Juni 2008 Teilen Geschrieben 13. Juni 2008 Hallo zusammen, ich habe eine (wahrscheinlich leicht zu lösende) Problemstellung. Ich habe eine Liste mit Datenbanktabellen-Einträgen, welche ich mir in php schön als Tabelle ausgegeben habe. Nun will ich in jeder Zeile am Ende einen klickbutton(mit einem roten X als Bild) einfügen. Wenn man da draufklickt soll der entsprechende Datensatz (Schlüssel ist der Primärschlüssel der Tabelle) gelöscht werden. Ich habe den Button als Formular/Submit (bzwpicture)Button erstellt. Wie kann ich die PHP Variable (CID) bei einem klick übergeben? Mit der HTML Formularfunktion sende ich ja normalerweise Formularinhalte. ABer ich habe ja keine Formularinhalte. Ich nutze das Formular ja nur wegen dem Button. Kann mir jemand helfen? Wahrscheinlich habe ich mich etwas umständlich ausgedrückt, aber ich hoffe dass man nachvollziehen kann was ich will*g* Danke schonmal! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dragon8 Geschrieben 13. Juni 2008 Teilen Geschrieben 13. Juni 2008 (bearbeitet) Wie wäre es wenn du in das Formular, in dem der Button schon ist, ein hidden-Textfeld mit einfügst? Dadrin kannst du dann den Schlüssel für die entsprechenden Seiten speichern. Und wenn du dann das Formular durch den submit-Button absendest wird der Wert, welcher in dem hidden-Feld gespeichert wurde, wieder mit zurück gesendet. Das könnte dann zb so aussehen: <form> [INDENT]<input type="hidden" value="[CID-Wert]" name="CID> <input type="submit" value="Löschen">[/INDENT] </form> Bearbeitet 13. Juni 2008 von Dragon8 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
wildertroll Geschrieben 13. Juni 2008 Autor Teilen Geschrieben 13. Juni 2008 Wie wäre es wenn du in das Formular, in dem der Button schon ist, ein hidden-Textfeld mit einfügst? Dadrin kannst du dann den Schlüssel für die entsprechenden Seiten speichern. Und wenn du dann das Formular durch den submit-Button absendest wird der Wert, welcher in dem hidden-Feld gespeichert wurde, wieder mit zurück gesendet. Das könnte dann zb so aussehen: <form> [INDENT]<input type="hidden" value="[CID-Wert]" name="CID> <input type="submit" value="Löschen">[/INDENT] </form> Ah ok. So kann man schummeln . Gute Idee! Danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ioon Geschrieben 13. Juni 2008 Teilen Geschrieben 13. Juni 2008 @Dragon8 komische lösung, soll er wohl dann pro zeile jedesmal eine neu Form einfügen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 13. Juni 2008 Teilen Geschrieben 13. Juni 2008 @Dragon8 komische lösung, soll er wohl dann pro zeile jedesmal eine neu Form einfügen? Könnte er, und wäre nichtmal falsch. Nur ob es schön ist ist ne andere Frage Mein Tip: Der Button ist ein Button, kein Submit, und führt ein Javascript aus, was einen hidden-Wert im Formular füllt und dann ein form.submit() ausführt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dragon8 Geschrieben 13. Juni 2008 Teilen Geschrieben 13. Juni 2008 @Dragon8 komische lösung, soll er wohl dann pro zeile jedesmal eine neu Form einfügen? Also so, wie ich ihn verstanden habe, besteht diese Form pro Zeile schon, und dann würden "nur" die hidden-Felder noch hinzukommen. JesterDays Lösung ginge natürlich auch, damit könnte man sich dann mit einem Form und einem Hidden-Feld auf der Seite begnügen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
smash Geschrieben 14. Juni 2008 Teilen Geschrieben 14. Juni 2008 (bearbeitet) Warum nicht einfach einen Link nutzen und die Variable als GET Parameter übergeben? Wenn mehrere Datensätze gleichzeitig gelöscht werden sollen: - Ein Formular um die Tabelle mit sämtlichen Datensätzen bauen. - Ein Löschen Button für alle einbauen. - Mit jedem Datensatz eine Checkbox anzeigen. - Name der Checkbox = "cid[]" - Den Wert der CID kann man im Value-Attribut der Checkbox unterbringen. ... value="$CID" ... Das auswertende PHP-Skript kann dann mit einer foreach-Schleife alle Datensätze löschen die ausgewählt waren, als der Löschen-Button gedrückt worden ist. foreach($_POST["cid"] as $cid){ mysql_query("DELETE ....."); } Mann kann natürlich auch erst alle ids konkatenieren und dann eine DELETE Abfrage für alle machen. Außerdem braucht mann bei dieser Lösung kein JavaScript. Ob das Löschformular oder ein anderes abgeschickt worden ist, bekommt man ja durch den Lösch-Button ebenfalls leicht heraus. Bearbeitet 14. Juni 2008 von smash Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 16. Juni 2008 Teilen Geschrieben 16. Juni 2008 Warum nicht einfach einen Link nutzen und die Variable als GET Parameter übergeben? Weil das nichts anderes ist, es sieht nur auf den ersten Blick anders aus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
smash Geschrieben 16. Juni 2008 Teilen Geschrieben 16. Juni 2008 So weit ich weiß, ist ja eigentlich der HTTP-POST-Request für die Übermittlung von Daten vorgesehen. Aber du hast warscheinlich Recht. Ich denke jedenfalls, dass technisch kein großer Unterschied bei der Datenübertragung gemacht wird. Ist ja bei HTTP alles bloß Klartext. Mann muss natürlich wissen, dass die übermittelten Daten in der URL auftauchen. Jedenfalls kann man sich das Formular sparen, vorausgesetzt man möchte immer nur einen Datensatz wählen und bearbeiten. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 16. Juni 2008 Teilen Geschrieben 16. Juni 2008 (bearbeitet) So weit ich weiß, ist ja eigentlich der HTTP-POST-Request für die Übermittlung von Daten vorgesehen. POST ist für die Übermittlung großer Daten vorgesehen. Wie eine GET-URL aussieht weißt du ja. Jetzt nimm das was da hinter dem ? steht und sende das nicht in der URL (HTTP-Header) , sondern im HTTP-Body mit, dann hast du deinen POST (Ein GET hat einfach einen leeren Body, wobei du auch einen POST mit GET-Parametern mischen kannst) Die URL hat theoretisch keine Längenbegrenzung, praktisch hat sie aber eine, je nach Browser. Ein Post ist also nichts anderes als das was du vom Webserver als Antwort bekommst, nur in die andere Richtung. Und der Body hat auch keine Größenbegrenzung, deswegen kannst du per POST große Daten (z.B. Bilderuploads) verschicken. (Bei kleinen Bildern geht das theoretisch auch als GET, wenn die andere Seite das kapiert) Ja, das mit der URL ist dabei nur der "optische Nachteil". Bearbeitet 16. Juni 2008 von JesterDay Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.