Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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";

}

Geschrieben

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

Geschrieben

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)

Geschrieben

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?

Geschrieben

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?!

Geschrieben
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>';

Geschrieben
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();

Geschrieben

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...