kills Geschrieben 30. September 2002 Geschrieben 30. September 2002 hi leute, ich schreibe zur zeit ein php script und habe folgendes prob.... ich habe eine html site mit textboxen(inhalt der boxen wird beim aufbau der site aus einer informix datenbank ausgelesen) und habe darunter einen submit button ... nun will ich diese änderungen die ich in den textboxen vorgenommen habe in der informix datenbank updatet. komischerweise werden keine updates durchgeführt... trotz wie ich meine korrekten sql befehls .... ich denke das das problem darin besteht das durch das drücken des submit button nur diese zeile aufgerufen wird: ./liste.php?Mo=&Di=&Mi=&Do=&Fr=&Ue= hier fehlt der name der funktion die gestartet werden soll trotz das ich die funktion unten im quelltext wie ich denke richtig definiert habe. falls dieser quelltext nicht ausreicht gebe ich gerne den kompletten quelltext frei.. folgend mein quelltext.... function eingabe($flag) { $pieces=explode("&",$flag); if ($pieces[3]=="") { $yy="./liste.php?apply"; $mo=""; $di=""; $mi=""; $do=""; $fr=""; $ue=""; } else { $yy="./liste.php?update&$pieces[3]"; $conn_id = ifx_connect ("[dbname", "[dbuser]", "[dbpw]"); $res_id = ifx_query("select * from anwesenheit where id=$pieces[3]",$conn_id); $row = ifx_fetch_row ($res_id, "NEXT"); $mo = $row["mo"]; $di = $row["di"]; $mi = $row["mi"]; $do = $row["do"]; $fr = $row["fr"]; $ue = Date("d.m.Y", $row["ue"]); ifx_close($conn_id); } // javascript echo "<head><title>Anwesenheit ändern</title></head>"; echo "<script language='JavaScript'>\n<!--\n"; echo "function HinzufuegenMo(Zeichen)\n"; echo " {\n"; echo "window.document.Formular.Mo.value = Zeichen;\n"; echo " }\n"; echo "function HinzufuegenDi(Zeichen)\n"; echo " {\n"; echo "window.document.Formular.Di.value = Zeichen;\n"; echo " }\n"; echo "function HinzufuegenMi(Zeichen)\n"; echo " {\n"; echo "window.document.Formular.Mi.value = Zeichen;\n"; echo " }\n"; echo "function HinzufuegenDo(Zeichen)\n"; echo " {\n"; echo "window.document.Formular.Do.value = Zeichen;\n"; echo " }\n"; echo "function HinzufuegenFr(Zeichen)\n"; echo " {\n"; echo "window.document.Formular.Fr.value = Zeichen;\n"; echo " }\n"; echo "function HinzufuegenAlle(Zeichen)\n"; echo " {\n"; echo "window.document.Formular.Mo.value = Zeichen;\n"; echo "window.document.Formular.Di.value = Zeichen;\n"; echo "window.document.Formular.Mi.value = Zeichen;\n"; echo "window.document.Formular.Do.value = Zeichen;\n"; echo "window.document.Formular.Fr.value = Zeichen;\n"; echo " }\n"; echo " function chkFormular()\n"; echo " {\n"; echo " if(window.document.Formular.Fr.value == \"Urlaub\") {"; echo " if(window.document.Formular.Ue.value == \"\") \n"; echo " {\n"; echo " alert(\"Bitte Urlaubsende eintragen!\");\n"; echo " window.document.Formular.Ue.focus();\n"; echo " return false;\n"; echo " }}\n"; echo " }\n"; echo "//-->\n </script>\n"; echo "<form name=\"Formular\" action=\"$yy\" onSubmit=\"return chkFormular()\"><table align=center>\n"; echo "<tr><td align=center>Montag</td><td align=center>Dienstag</td><td align=center>Mittwoch</td>\n"; echo "<td align=center>Donnerstag</td><td align=center>Freitag</td><td align=center>Urlaubsende</td>\n"; echo "</tr><tr>\n"; echo "<td><input type='text' name='Mo' value='$mo' size=10 maxlength=10/></td>\n"; echo "<td><input type='text' name='Di' value='$di' size=10 maxlength=10/></td>\n"; echo "<td><input type='text' name='Mi' value='$mi' size=10 maxlength=10/></td>\n"; echo "<td><input type='text' name='Do' value='$do' size=10 maxlength=10/></td>\n"; echo "<td><input type='text' name='Fr' value='$fr' size=10 maxlength=10/></td>\n"; echo "<td><input type='text' name='Ue' value='$ue' size=10 maxlength=10/></td>\n"; echo "</tr><tr>\n"; echo "<td><input type='button' value='BiH' onClick='HinzufuegenMo(\"BiH\")'/>\n"; echo " <input type='button' value='Url.' onClick='HinzufuegenMo(\"Urlaub\")'/></td>\n"; echo "<td><input type='button' value='BiH' onClick='HinzufuegenDi(\"BiH\")'/>\n"; echo " <input type='button' value='Url.' onClick='HinzufuegenDi(\"Urlaub\")'/></td>\n"; echo "<td><input type='button' value='BiH' onClick='HinzufuegenMi(\"BiH\")'/>\n"; echo " <input type='button' value='Url.' onClick='HinzufuegenMi(\"Urlaub\")'/></td>\n"; echo "<td><input type='button' value='BiH' onClick='HinzufuegenDo(\"BiH\")'/>\n"; echo " <input type='button' value='Url.' onClick='HinzufuegenDo(\"Urlaub\")'/></td>\n"; echo "<td><input type='button' value='BiH' onClick='HinzufuegenFr(\"BiH\")'/>\n"; echo " <input type='button' value='Url.' onClick='HinzufuegenFr(\"Urlaub\")'/></td>\n"; echo "</tr></table>\n"; echo "<table align=center><tr>"; echo "<td><input type='button' value='Kompl.BiH' onClick='HinzufuegenAlle(\"BiH\")'/>\n"; echo " <input type='button' value='Kompl.Url.' onClick='HinzufuegenAlle(\"Urlaub\")'/></td>\n"; echo "</tr></table><table align=center><tr>\n"; echo "<td><input type='submit' value='Eingaben Speichern'/>\n"; echo "</tr></table></form>\n"; echo " </body>\n"; echo " </html>\n"; } Zitieren
DevilDawn Geschrieben 30. September 2002 Geschrieben 30. September 2002 Erstmal ist Quelltextausgabe mit echo schlechter Stil, weil schlecht lesbar. Anstelle von echo '<a href="$value">Blabla</a>'; machst du lieber ?> <a href="<? print $value;?>">BlaBla</a> <? Da bekommst du auch keine Probleme mit dem escapen von Quotes. Dann benutze die "PHP-Normalform" : *HTMLHeader* <? function show_Form() { # Formularausgabe mit Werten } function do_Form() { # Formulareingabe verwursten } if (isset($submitname)) { do_Form(); } show_Form(); ?> *HTMLFooter* Dazu sollte dein Submit-Button aber einen Namen tragen <form action="<? print $PHP_SELF; ?>" method="GET"> ... <input type="submit" name="submitname" value="Absenden"> </form> HTH Zitieren
kills Geschrieben 30. September 2002 Autor Geschrieben 30. September 2002 das mit dem ueberblicken lass ma meine sorge sein is nur ein auszug aus meinem proggy deshalb is alles so mit echo und deshalb sind auch die ganzen if funktionen net drinne.... (bzw ich mach php erst seit 3 tagen und ich habs halt so erklärt bekommen.... ich hab mir den rest selbst beigebracht deshalb werden auch der ein oder andere syntax fehler drinne sein den ich nicht so verstehe und ihr vielleicht nur drueber schmuntzeln koennt) was ist das escapen von quotes?! was ist ein quote? bzw warum soll man sie escapen bzw wechen sinn hat das?! thx 4 help (war nicht böse gemeint falls es sich so anhört) Zitieren
DevilDawn Geschrieben 30. September 2002 Geschrieben 30. September 2002 Dann frage ich mich warum deine Function eingabe zwar ganz toll viele Variablen baut, aber kein return Statement hat. Wozu ist die gut? Offensichtlich steht im HTML-Source später $yy nicht drin, weil die Variable nur lokal zur function eingabe ist. Schon mal global $yy; versucht? Zitieren
kills Geschrieben 30. September 2002 Autor Geschrieben 30. September 2002 du meinst also das die $yy nur für die eingabe und nicht für den java script als locale variable gilt!? echo "<form name=\"Formular\" action=\"$GLOBALS['yy']\" onSubmit=\"return chkFormular()\"><table align=center>\n"; so meinst?! was meinst du mit return statement?! Zitieren
DevilDawn Geschrieben 30. September 2002 Geschrieben 30. September 2002 Original geschrieben von kills was ist das escapen von quotes?! was ist ein quote? bzw warum soll man sie escapen bzw wechen sinn hat das?! " und ' sind quotes Du escapest quotes bei dir: echo "<a href=\"bla.php\">Bla</a>"; Die \ vor den " dienen zum escapen (d.h. das " soll nicht von der Sprache interpretiert werden). Das alles spart man sich mit ?> <a href="bla.php">Bla</a> <? Was imho die Übersichtlichkeit drastisch erhöht und auch Flüchtigkeitsfehler reduziert. Alternative: echo '<a href="bla.php">Bla</a>'; Mit ' ... ' aussenrum kannst du also auch " pur einsetzen - Aber keine Variablen mehr, die werden dann auch nur als Namen ausgegeben. Da müsste man den quote dann beenden : echo '<a href="'.$URL.'">Bla</a>'; Zitieren
DevilDawn Geschrieben 30. September 2002 Geschrieben 30. September 2002 Original geschrieben von kills du meinst also das die $yy nur für die eingabe und nicht für den java script als locale variable gilt!? was meinst du mit return statement?! Variablen in functions sind i.d.R. lokal zur Funktion. Der Rest des Scripts bekommt sie nicht mit. Es gibt die Möglichkeit über das $GLOBALS-Hash: function bla() { $GLOBALS["yy"] = "Wert"; } oder über das global-Statement: function bla() { globa $yy; $yy = "Wert"; } oder halt über eine Rückgabe: function bla() { $result = "Wert"; return $result; } $yy = bla(); Zitieren
kills Geschrieben 30. September 2002 Autor Geschrieben 30. September 2002 jo das weiss ich ich wusste nur net das die dinger quotes heissen du meinst das mit den literalen usw. ... btw ich hab meinen fehler gefunden bei mir hat im formular method=post gefehlt naja thx 4 hlp Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.