Input-Inhalt an href übergeben
fanta
- php
0 Der Martin0 fanta0 suit0 fanta0 Der Martin0 suit
0 suit0 EKKi
Salut Leute!
üb mich gerade in PHP und stehe gerade auf dem Schlauch.
Situation:
Ein Textfeld(Input), dahinter ein 'a href' mit GET-Parametern. Somit möchte ich den Text ändern und an die Datenbank schicken.
Das ganze mit POST und Submit-Button wäre kein Problem aber ich möchte den Inhalt des Input-Feldes per 'a href' abschicken.
Hab irgendwo ein Denkfehler!
Hallo,
Ein Textfeld(Input), dahinter ein 'a href' mit GET-Parametern. Somit möchte ich den Text ändern und an die Datenbank schicken.
warum so umständlich? Zumal du dazu Javascript zwingend voraussetzen musst.
Das ganze mit POST und Submit-Button wäre kein Problem aber ich möchte den Inhalt des Input-Feldes per 'a href' abschicken.
Dann verwende doch ein GET-Formular mit einem normalen Submit-Button. Das ist vom Server aus gesehen genau dasselbe wie ein Link mit URL-Parametern.
Ciao,
Martin
Dann verwende doch ein GET-Formular mit einem normalen Submit-Button. Das ist vom Server aus gesehen genau dasselbe wie ein Link mit URL-Parametern.
ok. aber was ist wenn ich mehrere Parameter habe die mit übergeben werden?
z.B.:
<a href="index.php?upt=1&tn=4&hua=h">
<a href="index.php?upt=1&tn=4&hua=h">
Dann schreibst du die halt in das action-Attribut dazu oder in mehrere versteckte input-Felder.
Dann schreibst du die halt in das action-Attribut dazu oder in mehrere versteckte input-Felder.
Die Parameter werden nicht mit übergeben!
<form action="index.php?upt=1&tn=4&hua=h" method="get">
Hallo,
Dann schreibst du die halt in das action-Attribut dazu oder in mehrere versteckte input-Felder.
Die Parameter werden nicht mit übergeben!
<form action="index.php?upt=1&tn=4&hua=h" method="get">
wenn du sie als hidden inputs ins Formular schreibst, dann schon. Als URL-Parameter werden sie tatsächlich durch die Formulareingaben ersetzt, wenn das Formular per GET versendet wird.
Ciao,
Martin
Als URL-Parameter werden sie tatsächlich durch die Formulareingaben ersetzt, wenn das Formular per GET versendet wird.
Aber nicht bei POST - womit wir wieder beim Anfang wären: warum nicht POST wenn es nur darum, dass der Button wie ein Link aussieht?
Hallo,
Als URL-Parameter werden sie tatsächlich durch die Formulareingaben ersetzt, wenn das Formular per GET versendet wird.
Aber nicht bei POST
richtig. Aber dann hast du in PHP einen Teil der Parameter in $_GET, einen Teil in $_POST. Find ich nicht schön.
womit wir wieder beim Anfang wären: warum nicht POST wenn es nur darum, dass der Button wie ein Link aussieht?
Weil der OP ursprünglich nach einem LInk mit entsprechender Funktionalität fragte. Da bin ich davon ausgegangen, dass die serverseitige Auswertung bereits feststeht und nicht geändert werden soll. Mit einem GET-Formular wäre das zu haben. Zumal GET auch von der Logik her eher einem Link entspricht als POST.
Wenn das auswertende PHP-Script natürlich auch noch verhandelbar ist, stehen alle Möglichkeiten offen.
Ciao,
Martin
Als URL-Parameter werden sie tatsächlich durch die Formulareingaben ersetzt, wenn das Formular per GET versendet wird.
Aber nicht bei POSTrichtig. Aber dann hast du in PHP einen Teil der Parameter in $_GET, einen Teil in $_POST. Find ich nicht schön.
Dafür stellt TYPO3 die Funktion GPvar zur Verfügung, sowas kümmert mich eher weniger :) zudem gäbe es noch $_REQUEST. Man müss ja ohnehin die Werte prüfen - und ob die der Benutzer jetzt über ein Manipuliertes Cookie einschleusen will oder selbst an POST- oder GET herumspielt ist ansich egal.
Hi!
Aber dann hast du in PHP einen Teil der Parameter in $_GET, einen Teil in $_POST. Find ich nicht schön.
Das kann man ja grade zum Vorteil einsetzen. Das Formular übermittelt per POST Daten eines zu bearbeitenden Datensatzes. Den hat man vorher aus einer Liste gewählt. Diese Liste war vom User per Spaltenkopf-Link-Klick sortiert, und obendrein war er noch auf der drölften Seite. Diese beiden Informationen zur Sortierung und Paginierung stehen im Querystring und nach der Datensatzbearbeitung soll der Anwender wieder an die Stelle geschickt werden. Alle Daten in ein POST zu packen, fände ich nicht schön, weil man für den formularverarbeitenden Teil die anderen Daten entfernen muss, die durch $_POST und $_GET bereits getrennt wären.
Alternativ könnte man die Sortier-/Paginierdaten auch in einem Cookie oder einer Session zwischenlagern. Aber auch da hat man eine Trennung, die du nicht schön findest. Zudem kann diese Information nur einmal für die selbe Browserinstanz abgelegt werden, wenn man die Session-ID nicht ohne Cookie durchschleift. Aber dann hat man diese entweder wieder getrennt an zwei Stellen oder mit den anderen Daten vermischt.
Lo!
Das ganze mit POST und Submit-Button wäre kein Problem aber ich möchte den Inhalt des Input-Feldes per 'a href' abschicken.
Das ist mit PHP oder HTML nicht möglich - dafür wäre JavaScript notwenig, aber auch das ist absolut unsinnig.
Wie Martin schon sagt: Formular mit GET - den Absendebutton kannst du ja meinetwegen so gestalten, dass er aussieht wie ein herkömmlicher Link.
Mahlzeit fanta,
Situation:
Ein Textfeld(Input), dahinter ein 'a href' mit GET-Parametern. Somit möchte ich den Text ändern und an die Datenbank schicken.
Wenn Du in einer Datenbank gespeicherte Daten *verändern* willst (also Daten an den Server *schicken* willst), solltest Du entsprechende Formulare sinnvollerweise mittels POST an den Server schicken. GET sollte lediglich zum *Holen* von Daten verwendet werden. So umgehst Du u.a. die Problematik, dass Suchmaschinen oder Browser mit Prefetch-Funktionalität ungewollt Daten verändern oder löschen. Die Diskussion hatten wir erst unlängst ...
Das ganze mit POST und Submit-Button wäre kein Problem
Dann solltest Du das auch genau so tun.
aber ich möchte den Inhalt des Input-Feldes per 'a href' abschicken.
Warum? Gibt es irgendeinen logischen und sinnvollen Grund für dieses Ansinnen?
Du kannst jeden Submit-Button auch wie einen Link aussehen lassen - wenn es das ist, um das es geht ...
Hab irgendwo ein Denkfehler!
Ja: und zwar ganz am Anfang. :-)
MfG,
EKKi