button onlick - ID und variable übergeben an php script
tiggerle
- javascript
0 tiggerle0 Cheatah0 tiggerle
0 Der Martin0 MudGuard
hallo,
ich bin bei JS leider überhaupt nicht bewandert, schreibe gerade eine php-extension, die ich angepasst an den stil der restlichen scripts einen button einbauen möchte.
dieser button soll beim click eine variable mit einer id übergeben, das soll die unschöne methode angabe in der adresszeile ?$id=value umgehen.
folgendes wäre auch eine methode (mal in kurzform skizziert, aber das mag ich nicht. ich möchte wissen, wie ich direkt mit einem button-onclick einen wert der variable PLUS eine id dazu übergeben kann ...
<form>
<input hidden value id>
<button>
</form>
vielen lieben dank!
bin sicher, das ist recht einfach, hab aber jetzt 1 stunde erfolglos gesucht :-(
kurzer nachtrag, um es besser zum ausdruck zu bringen, was ich wollte:
bei mir sieht die eingabe im moment etwa so aus:
<form action="/joomla2/index.php?option=com_abc&view=day&Itemid=67" method="post" id="adminform3">
<input type="hidden" name="yearID" id="egal" value="2008">
<input type="hidden" name="monthID" id="egal2" value="12">
<button onclick="document.getElementById('adminForm3').submit();">Dezember</button></form>
gibt es noch eine elegantere lösung?
eine ohne input felder, mit direkter übergabe der variablen?
besten dank!
Hi,
gibt es noch eine elegantere lösung?
ja: Streiche den JavaScript-Teil ersatzlos.
eine ohne input felder, mit direkter übergabe der variablen?
Es existiert *kein* Weg, per HTTP Variablen zu übergeben. Wenn Du davon ausgehst, dass etwas derartiges ginge, begehst Du mit hoher Wahrscheinlichkeit und einem erheblichen Gefahrenpotenziel einen schwerwiegenden Fehler.
Willst Du *Parameter* übergeben, welche nicht in der Adressleiste stehen, so suchst Du das, was Du bereits gefunden hast: ein Formular der Methode "post". Dies ist der einzige in HTML zur Verfügung stehende Weg hierzu.
Cheatah
hallo,
ok besten dank!
es handelt sich im prinzip um eine extension für joomla, aber es war ja eine allgemeine programmierfrage.
die joomla-umgebung ist auch der grund, warum das ganze ohne js offenbar auch nicht funktioniert. nach dem absenden tauchen jedenfalls meine parameter dann in der URL nach dem laden der seite auf. aber gut, soll so sein ...
was ich einfach gedacht hatte, war, dass man mit JS vielleicht direkt einen button mittles onclick programmieren kann, dass er ID und einen Wert dazu übergeben kann als submit und sich damit die input-felder spart. war aber offenbar nur hoffnung :)
Hallo,
<form action="/joomla2/index.php?option=com_abc&view=day&Itemid=67" method="post" id="adminform3">
<input type="hidden" name="yearID" id="egal" value="2008">
<input type="hidden" name="monthID" id="egal2" value="12">
was hat das für einen Grund, dass du ein paar Parameter mit GET übergeben willst (nämlich die in der action-URL) und ein paar mit POST (nämlich die beiden input-Elemente)?
Wenn du die Paramter nicht in der URL sehen willst, pack sie doch alle in input-Elemente vom Typ hidden, und übertrage sie als Formulardaten mit POST. Falls dein PHP-Script zwischen GET und POST unterscheidet, müsstest du das natürlich ein wenig anpassen.
<button onclick="document.getElementById('adminForm3').submit();">Dezember</button>
Was soll das? Anstatt hier umständlich mit Javascript das Formular abzusenden, verwende einfach einen gewöhnlichen submit-Button, oder lass wenigstens das onclick-Gedöns weg. Ein button-Element ohne type-Angabe verhält sich automatisch wie ein submit-Button, da type="submit" der Defaultwert ist.
eine ohne input felder, mit direkter übergabe der variablen?
Ja, als URL-Parameter. Aber das wolltest du ja nicht.
So long,
Martin
Hi,
<button onclick="document.getElementById('adminForm3').submit();">Dezember</button>
Was soll das?
tiggerle möchte vielleicht das Formular bei aktivem Javascript doppelt abschicken (einmal per submit() und einmal per default-HTML-Reaktion auf den Button-Klick).
cu,
Andreas