Mailinglisten-Archive |
Hi Barbara, Zitat von Barbara Hofbauer <b.hofbauer at office-only.de>: > Noch zur Erklärung: In die Textfelder (unsichtbar) DatVon1 und DatBis1 > werden die Anzahl Sekunden seit 1.1.70 (oder so?) eingetragen, um damit dann > die Differenz der Tage berechnen zu können. > > <?php > $DatEin=60*60*24; > echo "<input type='button' name='day' value='".$tagArr[mday]."'"; > ?> > onclick=" > <?php > $DatG1 = date("U", > mktime(0,0,0,$tagArr[mon],$tagArr[mday],$tagArr[year])); > > Echo("DatBis.value='$tagArr[mday].$tagArr[mon].$tagArr[year]';DatBis1.value= > $DatG1;"); > Echo("AnzahlNacht.value=DatBis1.value/$DatEin-DatVon1.value/$DatEin;"); > ?> > "> > > Nun sähe mein Code für die neue Form eigentlich so aus: > > <?php > $DatEin=60*60*24; > echo "<select size='1' name='AnzahlNacht'"; > ?> > onchange=" > <?php > $DatG=DatVon1.value; > $AnzahlNacht=AnzahlNacht.value; > $DatBis=date("d.m.Y", $DatG + $AnzahlNacht * $DatEin); > Echo("DatBis.value='$DatBis';"); > ?> > "> > > Das Problem ist, dass die Variable $DatG nun nicht den Inhalt von > DatVon1.value annimmt, sondern den Wert "DatVon1.value". Wieso kann ich zwar > im oberen Beispiel mit den Values der Felder rechnen aber im unteren nicht? Also mich verwirrt das Ganze etwas, ich glaube aber, Dein Problem liegt in der unuebersichtlichen und fehlerhaften Vermischung von PHP und Javascript, verbunden mit aehnlich lautenden Variablennamen im PHP- und Javascript-Code. Das erste Beispiel funktioniert, weil Du hier mit PHP HTML- und Javascript-Code generierst, wobei Du natuerlich die PHP-Variablen einsetzen kannst. Du bewegst Dich ja in PHP. In Deinem zweiten Beispiel willst Du aber eine Javascript-Variable, also ihrem Inhalt, im PHP-Skript in eine PHP-Variable abfuellen: $DatG=DatVon1.value;. Das geht natuerlich nicht. Ein Wunder, dass PHP hier nicht sowieso einen Fehler produziert. Muesste es eigentlich, denn fuer PHP muesste da ja $DatG='DatVon1.value'; stehen, wenn ich jetzt nicht total verwirrt bin. :-) Um in Deinem PHP-Skript DatVon1.value in $DatG abzufuellen, musst Du direkt den Wert des Formularfelds aus $_POST bzw. $_GET auslesen. Z.B. so: $DatG = $_POST['DatVon1']; $DatG = $_GET['DatVon1']; > Ich hatte natürlich auch einen Befehl in folgender Art probiert: > > Echo("DatBis.value='date(\"d.m.Y\", DatVon1.value + AnzahlNacht.value * > $DatEin)';"); Versuch es anstattdessen mal so (ungetestet...): echo('DatBis.value='.date("d.m.Y", ($_POST['DatVon1'] + $_POST['AnzahlNacht'] * $DatEin))); (fuer POST) echo('DatBis.value='.date("d.m.Y", ($_GET['DatVon1'] + $_GET['AnzahlNacht'] * $DatEin))); (fuer GET) > > Aber hier habe ich natürlich ziemliche Probleme mit den vielen Hochommas und > ganz egal, wie ich es auch mache, es funktioniert einfach nicht. $DatVon1 > wird DatVon1.value ja erst nach dem Senden und neuladen des Formular und > genau das will ich ja vermeiden. Bei dem ersten Beispiel mußte ich ja auch > nicht neuladen. Jetzt verwirrst Du mich wieder... :-) Wo kommt den jetzt $DatVon1 ploetzlich her? ;-) Also ich durchschaue Dein Problem noch nicht so ganz, ich habe aber den Verdacht, dass Du ein Bisschen PHP und Javascript vermischt und verwechselst. Vielleicht hilft Dir das Gesagte aber bereits weiter. Ansonsten bitte ich Dich, Dein Problem etwas genauer zu praezisieren, ggf. per PM, falls es hier zu OT sein sollte. Eventuell kannst Du Dein Problem auch ganz auf Javascript-Seite loesen, aber ich weiss nicht genau, wie Dein Ansatz derzeit aussieht und wo Du genau hinmoechtest. Viele Gruesse Lutz
php::bar PHP Wiki - Listenarchive