Formulare & Action
Michael
- javascript
Ich möchte beim klick auf einen link 2 aktionen durchführen:
1. Die action des Formulars, also die Zieldatei soll geändert werden (genauer gesagt es soll ein GET parameter hinzukommen).
2. Das Formular soll ganz normal abgeschickt werden.
Ich hatte folgende idee:
<form name="entryform" action="verarbeiten.php?page=1" method="post">
...
<a href="javascript: document.entryform.action += '&prev=text'; document.entryform.submit();">Preview</a>
...
</form>
Das funktioniert leider nicht, und der Objektreferenz von Selfhtml nach zu urteilen sollte document.entryform.action den Wert des "action" attributes des form-tags enthalten, wieso es nicht geht ist mir ein rätsel.
ich bin für jede hilfe sehr sehr dankbar,
michael
also... so ganz werd' ich aus dem nicht schlau was du da machen möchtest... kannst du das auch für meiner einer verständlich beschreiben?
mfG Markus :-)
Ich möchte mit einem <a> tag zuerst die Zieladresse des formulars "entryform" ändern und denn das ding abschicken, mit einem einziegen klick.
Hi,
Ich möchte mit einem <a> tag zuerst die Zieladresse des formulars "entryform" ändern
Von was zu was?
und denn das ding abschicken
Wohin, an eine E-Mail?
Viele Grüße
Torsten
Von was zu was?
von "verarbeiten.php?page=1" zu "verarbeiten.php?page=1&prev=text"
Wohin, an eine E-Mail?
...
voilà steht aber auch im thread... ;)
Hi,
von "verarbeiten.php?page=1" zu "verarbeiten.php?page=1&prev=text"
Bedeutet das, dass du neben einem Submit-Button (oder -Link) einen Link anbieten willst, der das gleiche Skript aufruft, nur zusätzlich mit "prev=text"? Warum überlässt du die Arbeit nicht dem Skript selber? Also zwei Buttons mit verschiedenen Namen, das Skript wertet aus, welcher Button gedrückt wurde und tut das entsprechende.
Oder verstehe ich dich da falsch?
Viele Grüße
Torsten
Nein so will ich das nicht, es geht ja darum die arbeit dem skript abzunehmen, ich will einfach ne antwort auf meine frage, wieso ich die action value nicht ändern kann, und nochmals bei action handelt es sich nicht um ein feld der form sondern um eine eigenschaft der form selbst.
Von was zu was?
von "verarbeiten.php?page=1" zu "verarbeiten.php?page=1&prev=text"
Das stimmt ja nicht. die action ist und bleibt 'verarbeiten.php' da du ja ein Post Formular verwendest.
und warum du kein hidden Feld verwenden willst ist echt ein Rätsel.
Struppi.
Hi,
- Die action des Formulars, also die Zieldatei soll geändert werden (genauer gesagt es soll ein GET parameter hinzukommen).
wat nu, andere action, oder Wert eines Parameters veraendern?
document.FORMNAME.action = "neu.php";
document.FORMNAME.ELEMENTNAME.value = "neuer Wert";
- Das Formular soll ganz normal abgeschickt werden.
dann musst Du die gewuenschten Aktionen in eine Funktion schreiben, die (im formtag) onsubmit gerufen wird.
function go() {
...
return true;
}
<form onsubmit="return go()"...>
Gruesse Joachim
Gerade im submit darf das teil ja nicht verändert werden, das macht ja keinen sinn, es geht darum die formularaction nur dann zu ändern wenn der benutzer auf den entsprechenden link klickt...
Hi,
Gerade im submit darf das teil ja nicht verändert werden, das macht ja keinen sinn, es geht darum die formularaction nur dann zu ändern wenn der benutzer auf den entsprechenden link klickt...
Wo ist das Problem? Schicke in dem Fall das Formular per Javascript ab und lass den onsubmit.
Gruesse Joachim
das problem ist dass genau das nicht geht...
dann solltest Du über einen anderen Lösungsweg nachdenken...
Was willst Du eigentlich machen? Also der Vorgang den du planst? Was soll geschehen?
Beispiele (URL's) sind auch immer gern genommen!
Hi,
warum sollte das nicht gehen?
<html>
<head>
<script language="javascript1.2" type="text/javascript">
function go() {
document.myform.myhidden.value = "neuvalue";
document.myform.submit();
}
</script>
</head>
<body>
<form action="test.php" method="get" name="myform">
<input name="myhidden" type="hidden" value="test">
<input name="mytext" type="text" value="test">
<input type="submit" value="go">
</form>
<br><br>
<a href="#" onclick="go();return false">go</a>
</body>
</html>
Gruesse Joachim
Aus meiner frage sollte eigentlich hervorgehen, dass es sich bei action nicht um ein value feld sondern um eine eigenschaft des formulars handelt.
Hi,
Aus meiner frage sollte eigentlich hervorgehen, dass es sich bei action nicht um ein value feld sondern um eine eigenschaft des formulars handelt.
leider geht das aus Deiner Frage nicht hervor, denn offensichtlich ist Dein technisches Verstaendnis lueckenhaft. Du schreibst:
von "verarbeiten.php?page=1" zu "verarbeiten.php?page=1&prev=text"
Wo aendert sich hier die action bzw. die Zieladresse?
Offensichtlich hast Du _keine_ Ahnung, was ein GET-Formular tut. Lies das nach und formuliere eine konkrete Frage.
Gruesse Joachim
Omg im ersten post steht das formular, da steht method="post", und wenn ich parameter der zieladresse ändere, dann ändere ich die zieladresse, oder etwa nicht?
und wenn du mir nicht helfen willst musst du das nicht tun..
Hi,
Omg im ersten post steht das formular, da steht method="post", und wenn ich parameter der zieladresse ändere, dann ändere ich die zieladresse, oder etwa nicht?
Wenn Du ein Formular versendest machst Du das per get _oder_ per post, aber nicht per get _und_ per post!
Beim post-Versand werden die Daten im content-Bereich des headers transportiert, beim get-Versand werden die Daten per Query an die Url angehaengt, also neu.php?myvar=newval.
Wenn Du also ein Formular per post versenden willst, kannst Du in der action keine keine get-Parameter verstecken. Das ist auch unnoetig: lege Dir hidden fields mit betreffenden Namen an, manipuliere deren value und sende das Formular ab - Deine Daten stehen dann als post-Parameter zur Verfuegung.
Ansonsten konntest Du bereits in meinem ersten Posting lesen, wie man mit Javascript die action veraendern kann.
und wenn du mir nicht helfen willst musst du das nicht tun..
Du solltest etwas nachdenken bevor Du trotzig reagierst.
Gruesse Joachim
klar funzen die Get parameter, wieso sollten sie denn nicht?
die im action tag definierte uri wird aufgerufen und die post daten so wie du es grade so schön beschrieben hast an das script übergeben.
Mein problem ist aber dass ich kein vorgegebenes verstecktes feld haben will, sondern ein parameter, welches sich beim klick auf den preview button erst "einschaltet", ich hab mittlerweile aber selbst ne lösung gefunden. Meine gedanken haben sich die ganze zeit in eine falsche richtung bewegt.
Ich möchte beim klick auf einen link 2 aktionen durchführen:
- Die action des Formulars, also die Zieldatei soll geändert werden (genauer gesagt es soll ein GET parameter hinzukommen).
aber du verschickst es doch per Post?
- Das Formular soll ganz normal abgeschickt werden.
und das geht nicht?
Ich hatte folgende idee:
<form name="entryform" action="verarbeiten.php?page=1" method="post">
...
<a href="javascript: document.entryform.action += '&prev=text'; document.entryform.submit();">Preview</a>
...
</form>
Was funktioniert nicht?
Dein Formularparameter werden per Post übergeben und dann willst du einen an die URL hängen, das klingt unlogisch, evtl. ist deine CGI Anwendung nicht druchdacht?
entweder du wechselt auch das method attribut oder du rufst das CGI direkt mit dem Link auf oder du benutzt ein verstecktes Feld um den Wert mitzugeben.
Struppi.