Hallo fastix,
vielleicht habe ich mich ja nicht richtig ausgedrückt:
Also. Das (unsichtbare) Formularfeld kann nur auf einen Wert gesetzt werden, wenn es vorhanden ist. Das ist schon mal klar.
Mein Reden.
Ist es vorhanden, dann wird bei einem submit auch dessen wert mit gesendet. Man kann sich davon überzeugen, dass man sich die angeforderte URI anschaut und dazu im <form...>- Tag die method auf "get" setzt. Darin sollte dann ein ?show_shipping=1 oder &show_shipping=1 enthalten sein.
Ob ich post oder get eingeben die Ausgabe ist immer:
javascript:document.forms['order2'].elements['show_shipping'].value='1';document.order2.submit();
Dieses wiederum kann, wie die anderen gesendeten Daten serverseitig mit PHP ausgewertet werden.
Zweite Möglichkeit: man sende das Formular an ein php-skript, welches nur <? phpinfo(); ?> enthält und bestaune im unteren Teil (Servervariablen) was da ankommt. Was da nicht ankommt kann PHP auch nicht verarbeiten.
Das gleiche kann ich bestaunen mit: echo $show_shipping
Ergebnis: Mit Hidden = 1, ohne Hidden = (nichts, ausser Javascript Fehler)
Ansonsten vermute ich schlicht einen logischen Fehler. Da mir aber außer recht wirren Beschreibungen wie "funktioniert nicht" keinerlei brauchbare Informationen, insbesondere kein Quelltext zur Verfügung stehen, kann ich das weder garantieren noch in anderer Form bekräftigen. Die Glaskugel ist nun einmal leider ein sehr unscharfes Medium, was dazu führt, dass ich mangels brauchbarer Informationen um das Ende des Ratespieles bitte.
Ein logischer Fehler? Nein, die Methode ist schlicht ungeeignet um eine Formularvariable per Javascript zu setzen. Glaubst Du nicht?
Weitere Ratschläge kann ich also erst geben, wenn ich
- Den Quelltext der Seite habe, die das zu sendende Formular und das geprobte Javascript enthält.
- Den Quelltext des PHP-Skriptes habe, mit welchem die zu sendenden Daten verarbeitet werden.
- Eine Beschreibung habe, was das können soll und was davon genau nicht geht und welche Fehlermeldungen auftauchen, wenn es wie gesendet, benutzt wird. Alles andere dient meiner Verwirrung und ist so gesehen nicht nur unnütz, sondern schädlich.
Willst Du das an Jxxxx.Rxxxxxxx@fastix.de oder wo anders hinhaben?
Hinweise hierzu:
zu 1.: Irrelevanter Kram kann weggelassen werden, bitte auf keinen Fall das PHP, welches die HTML-Ausgabe oder das Javascript erzeugt, ich habe keine Lust 13 mal nachzufragen, warum da Quotas maskiert werde.
Ich brauche beim Formular das, was der Browser bekommt. Nichts anderes, es geht da um die clientseitige Verarbeitung.
Gerne, Du bekommst den geparsten Code.
zu 2.: Bitte sauber kommentiert. Auch hier ist Raterei, was denn dieses oder jenes machen soll, meinerseits eher schädlich. Das kommentieren bitte PHP-like vornehmen.
Ahem, es ist kommentiert, vielleicht nicht ganz so wie man es in der IT-Schule beigebracht bekommt. Aber auf alle Fälle teile ich Dir mit wo die relevanten Stellen sind. Ich rufe Dich gerne auch auf meine Kosten an und beantworte alle Deine Fragen.
Die Aufgabenstellung, in ein Formularfeld mittels eines JavaScriptes einen Wert einzutragen, die Formulardaten insgesamt zu übertragen und mittels PHP auszuwerten ist nämlich eher (sehr) trivial.
Das schon, offensichtlich das Setzen einer Formularvariable per Javascript aber nicht. (Leider)
Noch eine Frage: Gibt es eventuell mehrere Formulare (<form></form>) in einem HTML-Dokument? Dann kann das logische Problem darin bestehen, dass immer nur ein Formular, respektive dessen Daten, gesendet wird (werden).
Jawohl gibt es, daher die Unmöglichkeit mit einem fest eingebauten Hidden zu arbeiten.
Alles rodscher? Ich hoffe Du lässt mich kurz vorm Ziel nicht sitzen.
Gruss vom langsam resignierenden
tox