MoechtegernFI Geschrieben 27. Mai 2004 Geschrieben 27. Mai 2004 Hallo zusammen! Ich habe in meiner PHP-Seite ein kleines JavaScript eingebaut welches überprüft ob ein Nutzer Daten eingetragen hat. Jetzt zu dem, was mich hier mit offener Kinnlade und absolutem Unverständnis zurücklässt: Wenn ich mit dem Internet-Explorer einen neuen Datensatz in eine Tabelle der MySql-Datenbank eingebe, wirds doppelt eingetragen. Gebe ich einen neuen Datensatz über den Opera ein, gibts keinen doppelten Eintrag. Versuche ich allerdings über den Opera einen Datensatz zu löschen, passiert gaaaaaarnix. Der Internet-Explorer wiederum machts. Vielleicht liegts am JavaScript? Wie gesagt, ich versteh einfach nich warum. Hoffentlich kann mir noch einer helfen, bevor ich total GAGA werd. Schonmal DANKE im voraus! Hier mal den Quellcode: neueintr.php: if(isset($_POST['neuplattform'])) { print "<table border=0> <form name=\"neuplattform\" onsubmit=\"return fillcheck()\"> <tr><td>Plattform: </td><td><input type=\"text\" name=\"plattf\"></td><td>*</td></tr> <tr><td><input type=\"submit\" value=\"Abschicken\"></td> <td><input type=\"reset\" value=\"Zurücksetzen\"></td></tr> </table> <script language=\"JavaScript\"> function fillcheck() { var plattf = document.neuplattform.plattf.value; var checked = true; if((plattf.length==0)) { alert(\"Bitte füllen Sie die mit * gekennzeichneten Felder aus!\"); checked= false; return checked; } if (checked) { document.neuplattform.method = \"post\"; document.neuplattform.action = \"dbspeichern.php\"; document.neuplattform.submit(); } return checked; } </script>\n"; //---------------------------------------------------------------------- dbspeichern.php: if(isset($_POST['plattf'])) { $conn = mysql_connect("localhost","root"); if($conn) { $plattf = $_POST['plattf']; mysql_select_db("tauschboerse"); $sqlPlattf = "insert into plattform (ID,Plattform)values('','$plattf')"; $resultPlattf = mysql_query($sqlPlattf,$conn); if($resultPlattf) { echo "Die neue Plattform wurde erfolgreich angelgt."; mysql_close($conn); } else { echo "<p>" .mysql_error($conn) ."</p>"; } } else { die("<b>Verbindung zum MySQL-Server fehlgeschlagen!"); } }
MightyCats Geschrieben 27. Mai 2004 Geschrieben 27. Mai 2004 Du hast da auch einen kleinen Denkfehler. Entweder du machst es onsubmit (im formular kopf) läßt dafür aber dann in der js funktion das form.submit weg oder du trägst beim button onClick=js funktion ein. So wie du es im moment hast schickt er das formular auch zweimal ab.
MoechtegernFI Geschrieben 27. Mai 2004 Autor Geschrieben 27. Mai 2004 Jetzt funktionierts :OD Viiiiielen Dank! Bin halt 'en JavaScript-Noob PS: Was wäre denn die elegantere oder 'bessere' Methode? (Habe jetzt nur das form.submit rausgelöscht)
MightyCats Geschrieben 27. Mai 2004 Geschrieben 27. Mai 2004 Jo ist kein problem. Schwierig zu sagen welche die bessere methode ist. Man müßte die Varianten erstmal in allen Browserarten testen und dann sich für die entscheiden die bei den meisten und gängigsten browsern funktioniert. Allerdings ist weniger = mehr also die onsubmit weil man sich dann unnötigen sourcecode spart
kills Geschrieben 27. Mai 2004 Geschrieben 27. Mai 2004 Jetzt funktionierts :OD Viiiiielen Dank! Bin halt 'en JavaScript-Noob PS: Was wäre denn die elegantere oder 'bessere' Methode? (Habe jetzt nur das form.submit rausgelöscht) Im Allgemeinen ist es besser, den Button zu verwenden, da Javascript vom Client deaktiviert werden können.
Noxy Geschrieben 27. Mai 2004 Geschrieben 27. Mai 2004 Wiso verwendest du eigentlich nicht gleich PHP um zu überprüfen, ob die Variablen richtig gefüllt sind? Javascript kann man deaktivieren, PHP ist immer aktiv.
kills Geschrieben 27. Mai 2004 Geschrieben 27. Mai 2004 Wiso verwendest du eigentlich nicht gleich PHP um zu überprüfen, ob die Variablen richtig gefüllt sind? Javascript kann man deaktivieren, PHP ist immer aktiv. Javascript bietet den Vorteil, da es Clientseitig läuft, dass man die Formularprüfungen durchführen kann, ohne die Seite abschicken (neu zu laden) zu müssen
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden