automatischer Button

reiti

Grünschnabel
Hallo,

Habe da ein Problem mit einem Java Script. Bin da noch nicht fit, brauche aber folgende Funktion:

Code:
<?
$count = 1; while ($count < 8){
$auto[1]="Porsche";
$auto[2]="Mercedes";
$auto[3]="BMW";
$auto[4]="VW";
$auto[5]="Opel";
$auto[6]="Fiat";
$auto[7]="Volvo";
$auto[8]="Renault"; ?>
<form name="Test" action="test.php" method="post" target="_blank">
<input type="radio" name="Auto<? echo $count; ?>" value="<? echo $auto[$count]; ?>"><? echo $auto[$count]; ?><br>

<script type="text/javascript">
for (var i = 0; i < document.Test.length; ++i);
document.Test.submit()
</script>

</form>
<? $count++; } exit; ?>

Das ganze läuft normal durch eine Datenbankschleife und bei jedem Durchlauf soll das Formular eingetragen werden. Allerdings funktioniert der automatische Button in meinem Fall nur 1 mal, statt im obigen Ablauf 8 mal.

Kann mir ein Profi helfen ?

Gruß Leiti
 
Guck dir doch mal den Quelltext an der erzeugt wird.
Dann siehst du vieleicht warum das nicht gehen kann.
Tipp: <form name="Test" 8 mal ?

Und deine Schleife im JS was soll die machen.
for (var i = 0; i < document.Test.length; ++i);

Ich hab aber auch noch nicht verstanden was du machen willst !!
 
Hallo,

zwar verwirrt mich ein wenig deine Darstellung (z.B. wieso definierst du den Array in der while-Schleife und nicht außerhalb?), aber allgemein muss dir etwas klar sein:

Solange Variablenwerte nicht an anderen Orten wie Datenbank/Session oder Cookie gespeichert werden, wird die Seite immer wieder mit vorgegebenen Variablen initialisiert. Mit dem Beenden eines PHP-Skriptes kann man auch nicht mehr auf seine Variablen zugreifen.

Zudem wird JavaScript sofort nach dem Laden der Seite ausgeführt, wenn es nicht irgendwie abgekapselt (Funktion, Klasse, Event-Handler) ist. Je nach Browser benötigt es ein paar Millisekunden, bis test.php (eine neue Seite, die nur den über <input> eingegebenen Wert kennt) aufgerufen wird.
 
Hallo,

Es sollen Daten aus einer sql-Datenbank automatisch in ein vorhandenes Formular eingetragen werden.

In diesem Fall wird eine Automarke in das Formular "test" eingetragen. Funktioniert auch. Aber die nächste Automarke wird nicht mehr in das Formular eingetragen, weil das javascript nur einmal angewendet wird.

Ich hätte es gern, das bei jedem Schleifendurchlauf das formular beschrieben und automatisch abgesendet wird.

So lange, bis alle Daten 8 x in das formular eingetragen sind.

Also als Endergebniss habe ich in dem Formular 8 neue Einträge, ohne das ich den Submit Button gedrückt habe.

Da ich mit Javascript noch nicht klar komme, habe ich halt ein paar Scripte, die ich gefunden habe, zusammengestrickt...

Bräuchte eigentlich nur "document.Test.submit()" . Allerdings sollte das Sript nach dem Durchlaufen der php schleife beim nächsten Formular Eintrag wieder den Eintrag mit automatischen Submit ausführen.
 
Sorry, aber ich kann mir immer noch nicht vorstellen, was du überhaupt damit bezwecken willst.

Dein PHP-Code mit Ausgabe von ein bisschen Javascript bewirkt Folgendes: Eine Seite mit 8 namensgleichen Formularen, aber Formelementen mit jeweils unterschiedlichem Namen ("auto".$count) plus vordefinierten Werten, die du automatisch abschicken willst... :confused:

Wenn du die Automarken ohnehin in der DB hast, wieso musst du sie dann noch abschicken? Schließlich wird dein Formular automatisch abgeschickt, also ohne Benutzerinteraktion (Wahl einer Automarke).
Oder möchtest du ein Formular mit einer Radiogroup, die deine verschiedenen Automarken als Auswahlmöglichkeit beinhaltet? Denn wieso brauchst du ein Formular, wenn du es ohnehin automatisch abschickst?
 
Hallo,

Das Original Script ist schon umfangreicher. Habe nur als Beispiel die Autos genommen.

Mir geht es eigentlich nur darum, das der automatische Submit Button jedesmal neu mit dem Formulareintrag abgesendet wird.

Das Javascript (Formeintrag und Button) soll also $count - mal ausgeführt werden

Gruß Leiti
 
Du kannst du die forms-Auflistung durchlaufen und den Namen der Formulare prüfen(falls noch andere existieren)
Code:
<script type="text/javascript">
<!--
f=0;
while(ff=document.forms[f])
  {
    f++;if(ff.name=='Test')ff.submit();
  }
//-->
</script>

Beachte aber, dass bei dem, was du da vorhast, jeder handelsübliche Popupblocker einschreitet.
 
Erst einmal herzlichen Dank. Das ist der richtige Weg. Lade Dich zum Essen ein, solltest Du mal an die Costa Brava (Nord Spanien) verreisen.......

Habe die if Anweisung rausgenommen..

Sieht jetzt so aus:
Code:
<script type="text/javascript">
<!--
f=0;
while(ff=document.forms[f])
  {
    f++;ff.submit();
  }
//-->
</script>

Hab da mal noch ne Logikfrage:
Angenommen, die PHP Schleife hat 4 Objekte (Formeinträge),

dann bekomme ich bei

bei f=0 bekomme ich 10 submits eingetragen , wobei die 4 Formeinträge eingetragen werden.

Bei f=1 bekomme ich 6 submits, wobei der 2. 3. 4. Formeintrag eingetragen wird

Bei f=2 bekomme ich 3 submits, wobei von 4 formeinträgen nur der 2. und 3, eingetragen wird.

Wie komme ich auf 4 submits mit 4 eintragungen ?

Ich hoffe, Du verstehst, was ich meine...
Gruß aus dem sonnigen Spanien
Leiti
 
Probier mal Folgendes:
Code:
var formElements = document.getElementsByTagName("form");
for(var i=0; i<formElements.length; i++) {
	formElements[i].submit();
}
 

Neue Beiträge

Zurück