kleine frage
-
<html> <head> <title>blubb</title> <meta name="author" content="root"> </head> <body text="#000000" bgcolor="black" link="#FF0000" alink="#FF0000" vlink="#FF0000"> <form action="meineURLhier" method="post"> <input type="text" name="username" value="Empfänger"><br> <input type="text" name="subject" value="Subject hier"><br> <input type="text" name="addbbcode18" value="%23444444"><br> <input type="text" name="addbbcode20" value="12"><br> <input type="text" name="helpbox" value="Text+in+fett%3A+%5Bb%5DText%5B%2Fb%5D+%28alt%2Bb%29"><br> <input type="text" name="message" value="Hallo wer ist da?"><br> <input type="text" name="attach_sig" value="off"><br> <input type="text" name="folder" value="inbox"><br> <input type="text" name="mode" value="post"><br> <input type="text" name="post" value="Absenden"><br> <script language = "JavaScript"> function js() { var k = 0; while (k==2) { document.getElementById(id="submit").submit(); k++; } } </script> <input type="submit" name ="submit" value="Absenden" onClick="js()"> </form> </body> </html>
Also ich habe mir mit PHP ein PM System gebastelt. D.h. jeder kann den Usern im Forum nun ne PM senden
Nun habe ich hier ein Script, das einfach 2 PM's senden soll, eine wird dann später automatisch in das Archiv gelegt, aber das ist ja jetzt egal.
Führe ich diesen Code aus, wird leider nur 1 PM gesendet die while() Schleife wird anscheinend irgendwie ignoriert
Setz ich anstatt dem document.getElementById() jedoch alert("test"); ein, so bekomme ich die MessageBox 2 mal!!!!Was stimmt hier nicht?
Danke shconmals
-
while(k<2)
-
hab das ja auch schon so probiert, geht leider trotzdem nicht!
wird nur 1mal gesendet
-
Sehe ich das richtig? Du willst die Anfrage 2x an das Script senden, damit die PN 2x gespeichert wird?
Ein Formular kann nur einmal verschickt werden! Denn wenn du es einmal abschickst, dann bist du i.d.R. auf einer anderen Seite bzw. auf der selben mit einem neuen Status.
Wobei deine Idee generell katastrophal ist: Du belegst den submit-button mit JavaScript um dein Ziel zu erreichen; wenn dies nun nicht aktiviert ist, arbeitet dein System schlichtweg falsch! Warum schickst du das Formular nicht - ganz normal - ein einziges Mal ab und speicherst die Nachricht einfach 2x? Dafür benutzt du PHP ja schließlich ... Wobei ich mich dann frage, ob 2x speichern generell vonnöten ist? Jedenfalls würde ich niemals auf so einen makaberen JavaScript-PHP-Mischmasch bauen
-
also gut.
gibts ne möglichkeit das formular mehrmals zu senden?
will es eben nicht im php code machen, da wärs ja simpel!
-
Ich sehe zwar nicht, wozu das gut sein könnte, aber evtl. klappt es, wenn du über target im <form>-Tag die Zielseite in unterschiedlichen Frames lädst...
-
Bitte schön:
<html> <head> <title>blubb</title> <meta name="author" content="root"> </head> <body text="#000000" bgcolor="black" link="#FF0000" alink="#FF0000" vlink="#FF0000"> <form action="meineURLhier" method="post" target="_blank"> <input type="text" name="username" value="Empfänger"><br> <input type="text" name="subject" value="Subject hier"><br> <input type="text" name="addbbcode18" value="%23444444"><br> <input type="text" name="addbbcode20" value="12"><br> <input type="text" name="helpbox" value="Text+in+fett%3A+%5Bb%5DText%5B%2Fb%5D+%28alt%2Bb%29"><br> <input type="text" name="message" value="Hallo wer ist da?"><br> <input type="text" name="attach_sig" value="off"><br> <input type="text" name="folder" value="inbox"><br> <input type="text" name="mode" value="post"><br> <input type="text" name="post" value="Absenden"><br> <input type="button" value="Absenden" onClick="js()"> <script language = "JavaScript"> function js() { var k = 0; while (k<2) { document.forms[0].submit(); k++; } } </script> </form> </body> </html>
Warum hat deines nicht funktioniert?
Erstens hast du dem Submit-Button den Namen "Submit" gegeben, woraufhin du mit getElementsById() das Form-Element aufgerufen hast und mit dem Aufruf submit() versucht hast, den Submit-Button als Funktion aufzurufen (das HTML-Elemente "submit" hat die JS-interne submit()-variable überschrieben). Wenn du JS einsetzen willst vergiss den name-attribut für Submit-Elemente oder gib dem Element zumindest einen Namen, der nicht in JS vorkommt.Wenn du eine OnClick-Operation für einen "Absenden"-Button definieren willst ohne dass das Formular automatisch auch durch den Klick an sich eine Submit()-Aktion durchführt, mach ein <input type="button">, dann wird ein Klick nicht automatisch als "Submit" interpretiert (außer von Safari :-/) und es wird nur die onClick-Aktion ausgeführt.
Wie Shade richtig sagt, while(k<2)
Und auch noch wichtig: Du _musst_ für <form> das target auf "_blank" setzen, nur dann werden zwei neue Fenster aufgemacht in denen die zwei submit-calls verarbeitet werden. Ansonsten wird im aktuellen Fenster das erste mal Submit aufgerufen und damit das JavaScript beendet, bzw. wenn du zB target="meinFrame" aufrufst, wird der submit in meinFrame aufgerufen und noch bevor der überhaupt den Server kontaktieren konnte, wird die Aktion abgebrochen und ein erneutes submit gemacht, und das zählt dann - Endergebnis: Das action-Script wird erst wieder nur einmal aufgerufen.