Aaah, ich hab da noch etwas Böses entdeckt...
document.order2.show_shipping.value = 1;
_DAS_ geht so natürlich nicht!
Ich nehme an, show_shipping ist hier der Name eines hidden input?
Das value-Attribut von JS-Inputs ist immer vom Typ String. Richtig müsste es also heißen:
document.order2.show_shipping.value = "1";
Andernfalls weist du dem Input-Feld irgendwas als Wert zu, was aber nicht interpretierbar ist - ergo: Das Feld bleibt effektiv leer, und es wird kein Inhalt übertragen. Das erklärt dann auch, warum im auswertenden PHP-Script die echo-Anweisung nichts "brauchbares" ausgibt.
Ciao,
Martin