Formular nur x-mal absenden können

Martys

Erfahrenes Mitglied
Hallo zusammen,

stehe etwas auf dem Schlauch, habe ein Formular, welches höchstens x-mal abgesendet werden soll. Dies muss mit Javascript gelöst werden (leider). Nun fehlt mir der Ansatz, wie ich die Klicks zählen kann bzw. wie ich die Variable initialisiere bzw. hochzähle.

Mein bisheriger Versuch, allerdings bleibt die Variable immer beim Wert 1.

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>JS A1</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
<!--
function popup() {

   // Formular auslesen
   var ihrname = document.form.name.value;

   // Abfrage ob Formularfeld nicht leer ist bzw. Namen enthällt
   if (ihrname != "" && ihrname == "Mueller" || ihrname == "Maier" || ihrname == "Marx" || ihrname == "Michel") {

   // Steuervariable initialisieren
   var x;
   x = 0;

   // Prompt-Boxen aufrufen zur Zahleneingabe
   zahl1 = prompt("Bitte geben Sie eine Zahl ein", "");
   zahl2 = prompt("Bitte noch eine Zahl", "");

   // Popup konfigurieren
   neu = open("", "auswertung", "height=300,width=400");
   neuesfenster = neu.document;

   // Popup aufrufen
   neuesfenster.open();

   // Ausgabe beginnen
   neuesfenster.write('<html><head><title>Auswertung</title></head><body>');
   neuesfenster.write('<p>Hallo ' + ihrname + '</p>');
   neuesfenster.write('<table border="1" cellpadding="2" cellspacing="0">');
   neuesfenster.write('<tr><td>Zahl</td><td>Quadratzahl</td></tr>');

   // Berechnung der Quadratzahlen
   for (zahl1 = zahl1; zahl1 <= zahl2; zahl1++) {
   ergebnis = zahl1 * zahl1;

   // Ausgabe der Ergebgnisse
   neuesfenster.write('<tr><td>' + zahl1 + '</td><td>' + ergebnis + '</td></tr>');
   }

   // Steuervariable mitzählen lassen
   x++;

   // Ausgabe des HTML-Codes
   neuesfenster.write('</table>');
   neuesfenster.write('<p>' + x + '</p>');
   neuesfenster.write('</body></html>');

   // Fenster schliessen
   neuesfenster.close();


   }
   else {
   alert("Sorry, hier wird nix berechnet!");
   }
}


//-->
</script>
</head>

<body>
<form name="form" method="get" action="" onSubmit="popup();">
<table width="400" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>Ihr Name:</td>
    <td><input name="name" type="text"></td>
  </tr>
</table>
 <p><input type="submit" value="Berechnung starten"></p>
</form>
</body>
</html>

Hoffe ihr könnt mir einen Tipp geben, über die Suche bin ich leider nicht weitergekommen.
Vielen Dank schon mal,

Martys
 
Setze einen Cookie, wenn das Formular gesendet wird.
Dann kannst du später abfragen, ob ein Cookie vorhanden ist und ggf. das Senden abbrechen.

Funktioniert natürlich nur, wenn Cookies an sind und der Keks vom User nicht per Hand gelöscht wurde....eine andere Möglichkeit gibt es in JS aus dem von Trice genannten Grund nicht.
 
Erstell ne Datei...
Speicher die IP und die anzahl, wie oft
Das forumlar gesendet wurde.
Wenn eine IP vorhanden is, dann auslesen, wie oft die gesendet wurde...
und wenn die Anzahl 1 ist,
dann brechse ab !

Mit javascript geht das, denke ich mal, nicht, weil Javascript eine
Client-Basierende P-Sprache ist.
 
So, erstmal danke für eure Antworten.
Werde dann heute Abend mal schauen, ob ich es hinbekomme.

So long,

Martys
 

Neue Beiträge

Zurück