Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

doppelter Datenbankeintrag (PHP, JavaScript)

Empfohlene Antworten

Veröffentlicht

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

}

}

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.

Jetzt funktionierts :OD Viiiiielen Dank!

Bin halt 'en JavaScript-Noob :rolleyes:

PS: Was wäre denn die elegantere oder 'bessere' Methode?

(Habe jetzt nur das form.submit rausgelöscht)

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 :)

Jetzt funktionierts :OD Viiiiielen Dank!

Bin halt 'en JavaScript-Noob :rolleyes:

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.

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.

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.