URL: https://www.overclockers.at/coding-stuff/formular-problem_mit_javascript_amp_php_45828/page_1 - zur Vollversion wechseln!
ich möcht ein formular gern mit javascript absenden
ich liste eine reihe von produkten auf (mit php aus einer mysql-db ausgelesen) und verlinke den "weiter"-button (für den nächsten schritt) mit javascript:document.form.submit()
das problem ist jetzt, ich müsste dem ganzen noch irgendwie einen parameter mitgeben, der die produkt-id ebenfalls sendet
das problem könnte man natürlich lösen, indem man checkboxen verwendet oder für jedes produkt ein eigenes form verwendet aber das scheint mir doch unnötig (bzw. checkboxen nicht mit dem design geeignet ...)
ums ca. in html-code zu fassen:
<td>Produkt 1: <a href="javascript:document.form.submit()"><img src="weiter-button.jpg"></td>
<td>Produkt 2: <a href="javascript:document.form.submit()"><img src="weiter-button.jpg"></td>
usw.
und die produkt-id muss eben auf der ziel-seite verfügbar sein
hat jemand eine ahnung, wie das zu lösen ist?
greetz
Wie wärs wenn du das ganze einfach mit nem Hidden Feld oder einem Image Feld machst? In etwa so:
<TD><INPUT type='image' src='weiter-button.jpg' name='produkt-id' value='id1'></TD>
<TD><INPUT type='image' src='weiter-button.jpg' name='produkt-id' value='id2'></TD>
Damit ist das ganze sauber gelöst und zwar ohne JS.
Mfg, Vir@s
Zweifellos ist eine Lösung ohne Javascript anzustreben. Wie hier ein <input type="hidden"> in einem einzigen <form> funktionieren soll, verstehe ich allerdings nicht ganz, da dessen value ja schon vor dem submit feststehen muß und somit nicht (mehr) von dem gewählten Produkt abhängen kann.
conclusio #1: Da die Seite sowieso scriptunterstützt erstellt wird, würde ich für jedes Produkt ein eigenes <form> mit passendem <input type="hidden"> vorsehen. Ziemlich straightforward.
conclusio #2: Wenn Du - wie es scheint - Grafiken als submit-buttons bevorzugst, so ist natürlich Vir@s' Vorschlag vorzuziehen. Hier bekommst Du sogar zusätzlich die Koordinaten des Klicks als produkt-id_x und produkt-id_y frei Haus geliefert. Ziemlich geeky.
hint: Mehrere submit-buttons sind auch ohne <input type="image"> möglich, man muß ihnen nur einen name geben. Nachteil: Der value wird zur Beschriftung mißbraucht.
ups - falsch verstandenZitat von bernhardconclusio #1: Da die Seite sowieso scriptunterstützt erstellt wird, würde ich für jedes Produkt ein eigenes <form> mit passendem <input type="hidden"> vorsehen. Ziemlich straightforward.
conclusio #2: Wenn Du - wie es scheint - Grafiken als submit-buttons bevorzugst, so ist natürlich Vir@s' Vorschlag vorzuziehen. Hier bekommst Du sogar zusätzlich die Koordinaten des Klicks als produkt-id_x und produkt-id_y frei Haus geliefert. Ziemlich geeky.
hint: Mehrere submit-buttons sind auch ohne <input type="image"> möglich, man muß ihnen nur einen name geben. Nachteil: Der value wird zur Beschriftung mißbraucht.
blede frage:
wieso machst du's nicht wie folgt:
<a href='datei.php?produktID=1'><img src='...'></a>
<a href='datei.php?produktID=2'><img src='...'></a>
<a href='datei.php?produktID=3'><img src='...'></a>
im php-script ist die produkt-id dann wieder unter $HTTP_GET_VARS['produktID'] abrufbar...
Edit:ausserdem kann der user die frage ob er daten ans internet schicken will net kriegen
... bzw. $_GET['produktID'] seit PHP 4.1.0.
Wie Du mir klassisch vor Augen führst, habe ich mich tatsächlich zu sehr auf die submit-Idee eingeschossen und andere (bessere?) Lösungsansätze ganz außer Acht gelassen. Soll nicht wieder vorkommen.
bravZitat von bernhard... bzw. $_GET['produktID'] seit PHP 4.1.0.
Wie Du mir klassisch vor Augen führst, habe ich mich tatsächlich zu sehr auf die submit-Idee eingeschossen und andere (bessere?) Lösungsansätze ganz außer Acht gelassen. Soll nicht wieder vorkommen.
ad $HTTP_GET_VARS (slightly OT):
Vorteil: backward compatible zu PHP3 (welche praktische Bedeutung hat PHP3 noch?)
Nachteil: deprecated(!), nicht (super|auto)global
huch - isses wirklich? wusste nix davon... wieder "gratulation" an die doku...Zitat von bernhardad $HTTP_GET_VARS (slightly OT):
Nachteil: deprecated(!), nicht (super|auto)global
thx für die antworten ... irgendwie hab ich keine emails kriegt obwohl ich notification an hatte also hab ichs auf eigene faust versucht und es auch geschafft!
falls es wen interessiert:
function submitForm (prodID)
{
document.form.produktid.value = prodID;
document.form.submit();
}
dann hab ich im formular ein hidden-element erzeugt:
<input type="hidden" name="produktid" value="">
und die buttons der einzelnen produkte (die ja in einer while-schleife aus der db ausgelesen werden) so verlinkt:
echo "<a href=\"javascript:submitForm(".$produkt[id].")\">image</a>";
trotzdem big thx für eure antworten ...
aber das mit dem verlinken like:
datei.php?produktID=x
geht nicht, weil ich auch noch select-felder hab sprich es muss ein form sein
und das mit <input type="image"> hab ich gar nicht gewusst dass es das gibt thx dafür
greetz
dann mach's mitn image-feld is' dann noch die beste lösungZitat von hYpeRbLasT.-aber das mit dem verlinken like:
datei.php?produktID=x
geht nicht, weil ich auch noch select-felder habsprich es muss ein form sein
ad (super|auto)global:
Syntaktisch soll das eine regular expression darstellen.
Semantisch heißt es, daß $_GET in _jedem_ scope automatisch global ist, während $HTTP_GET_VARS eventuell erst mit global $HTTP_GET_VARS; oder aus $GLOBALS - übrigens dem ersten superglobal, existent seit PHP 3.0.0 - geholt werden muß.
<http://www.php.net/manual/en/langua....predefined.php>
<http://www.php.net/manual/en/reserved.variables.php>
Ich glaube hier hat wer zuviel Zeit auf der php.net Homepage verbracht
Mach des ganze lieber mit dem IMAGE Input field, denn das ist die wesentlich sauberere Lösung, die eigentlich in jedem Browser gehen sollte.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025