Javascript: Alternative für onLoad?

  • Also: Ich hab da ein Problemchen: Ich suche nach einem Javascript Befehl, der folgendes aussagt: "Wenn geladen, dann mach xxx". Ich hab ja ein Kommentarforum erstellt.
    Nun möchte ich, das wenn ich z. B. ein Kommentar ändere, lösche etc., das er ein bestimmtes Formular absendet, bzw aktualisiert.

    Bis jetzt hab ich das mit folgendem Befehl versucht:

    Code
    echo "<body onload=\"alert('Kommentar wurde gelöscht!'), document.comen_ausw.submit()\"></body>";


    Hat in einer extra Datei mit dem Body Tag funktioniert, aber bei meinem gesamten Script hab ich ja dann quasi mehrmals den Body Tag, und das führt irgendwie zu Problemen, sodass er die Alert Box gar nicht aufruft, und auch das Formular nicht absendet...


    Zum besseren Verständlniss hier mal der Code, der mit diesen Script zutun hat:


    In dem Formular, wo man z. B. auf "Löschen" klickt, wird mittels hidden-feld Namens "action" der Wert "update" übergeben:

    Code
    <input type=\"hidden\" name=\"action\" value=\"update\">


    Wenn Action = Update, führe folgendes aus:

    Code
    if ($action == "update")
    {
    	mysql_query("update kommentare set Name='$_POST[name]', Mail='$_POST[mail]', Titel='$_POST[titel]', Text='$_POST[kommentar]' where id='$_POST[id]'");
    	echo "<body onLoad=\"alert('Kommentar wurde geändert!'), document.comen_ausw.submit()\"></body>";
    }

    In der letzen Zeile sieht man, das beim Laden des "Bodys" eigentlich ne Alert-Box kommen soll, und danach soll folgendes Formular nochmal abgeschickt werden:


    Code
    <form name=\"comen_ausw\" action=\"comments_admin.php\" method=\"POST\">
    ...
    </form>

    Das Formular soll deshalb nochmal abgeschickt werden, damit er das geänderte auch gleich anzeigt. Wenn ich jetzt den kompletten Code posten würde, würde es zu unübersichtlich werden. Das nur zum besseren Verständniss...

    Also mein Problem liegt wie gesagt darin, das ich im gesamten Script den Body-Tag mehrmals habe, wenn ich das Formular so abschicken will, wie oben im Text.

    Kennt jemand einen anderen JavaScript-Befehl, der dasselbe bewirkt?

    MFG Neo2400

  • erstmal sind mehr mals den body zu verwenden schon mal ein setzenm 6 Wert.

    2tens uht es ein

    <script type="jscript">
    <!--
    alert('Kommentar wurde gelöscht!');
    -->
    </sricpt>

    am ende des Documentes das gleiche wiedas Onload im bodyag.

  • Ja ich weis das das net gut ist, den Body mehrmals zu verwenden... Will ich ja auch vermeiden. Deswegen die Frage oben.

    Aso wenn ich es direkt als Javascript an der entsprechenden Stelle einfüge, sollte es klappen? Mal ausprobieren...

    Hey thx, das klappt. Allerdings nur nach der Methode:

    Code
    echo "<script type=\"text/javascript\" language=\"JavaScript\">alert('Kommentar wurde geändert!'),document.comen_ausw.submit()</script>";

    habe jetzt diese "" weggelassen. Wozu sind die eigentlich gut?

  • Mal 'ne dummer Frage:

    Wenn du die Änderung mit PHP machst, wozu dann noch das Alert?
    Die Seite wird doch ohnehin nach jeder Änderung neu geladen, warum gibst du nicht direkt auf der Seite einen Fehlerstatus aus, also wenn alles korrekt gelaufen ist eben die Meldung "Änderungen wurden gespeichert" am Seitenanfang, ansonsten halt den Fehler?

    Dein Alert-Fenster mußt du immer manuell abquittieren und es sagt überhaupt nichts darüber aus, ob die Änderung tatsächlich gespeichert wurde.

    G.a.d.M.

    ronald

  • Hmm naja automatisch neu geladen wird sie nicht direkt, es sei denn ich mach halt das "document.comen_ausw.submit()" noch mit rein. Aber stimmt eigentlich, die Alert Box könnte ich mir sparen, und dann das einfach als Text ausgeben lassen... so hatte ich das ja auch vorher, nur wusste ich dann aber nicht so recht, wie ich ne Benutzerfreundliche abfrage beim Löschen von Kommentaren machen soll, und da kam mir die Javascript Confirm Box ganz recht... Ok, hätte es vielleicht auch mit PHP und mit Buttons machen können, gut, aber jetzt lass ich es erstmal so. Kann es ja immer noch ändern wenn ich will. Jedenfalls funzt es jetzt. THX!