TheRat101: Syntax Fehler bei Weitergabe von Funktionsdaten an Javascript

Hallo Leute,

bisher habe ich es immer geschafft mich mit Google irgendwie durchzuwurschteln aber jetzt benötige ich eure Hilfe.

Ich habe folgende Zeile in meiner PHP Datei:

  
$output['pferdelist'] = '<input class="logsub" name="newhorse" type="submit" value="'.$reiterupferdlist[5].'" onclick="addhorse("'.$reiterupferdlist[6].'")">';  

Auf der Seite funktioniert die Übergabe der Variable an Javascript so leider nicht da bei >>onclick="addhorse("<< die >>"<< nach dem >>(<< als Syntax Fehler angezeigt werden.

Wäre super wenn mir jemand weiterhelfen oder Tipps geben könnte wie ich an die Sache rangehen kann.

Im Endergebnis sollte es jedoch wieder in der PHP Variable eingelegt werden.

Vielen Dank schonmal
Lg

  1. Tach!

    Wäre super wenn mir jemand weiterhelfen oder Tipps geben könnte wie ich an die Sache rangehen kann.

    Du hast da mehrere Kontexte und die ineinander geschachtelt. Javascript-Code in HTML-Code in PHP-Code. Man kann da wie folgt vorgehen. Zuerst aufschreiben, was am Ende rauskommen soll - also das Javascript. Dann legt man quasi den nächsten Kontext drüber und schaut, welchen zeichen dafür maskiert werden müssen. Und dann dasselbe mit dem nächsten Kontext. Die Maskierzeichen vom vorhergehenden Kontext sind nun aber wie ganz normale einzelnen Zeichen zu behandeln. Ein Beispiel gibts im Kontextwechsel-Artikel (in der Fortsetzung „Javascript und HTML“)

    dedlfix.

  2. $output['pferdelist'] = '<input class="logsub" name="newhorse" type="submit" value="'.$reiterupferdlist[5].'" onclick="addhorse("'.$reiterupferdlist[6].'")">';

    "'.$reiterupferdlist[6].'" -> anführungszeichen verwechselt - deine äußeren sind da innen  
      
    Viele Grüße aus LA
    
    -- 
    ralphi
    
  3. Hallo dedlfix,

    erstmal vielen Dank für die schnelle Antwort.
    Also nachdem ich mich einige Zeit gespielt habe habe ich es letzt endlich doch hinbekommen das die Daten ordentlich übergeben werden.

    Jetzt ist aber ein anderes Problem. (aktuell hab ich mich irgendwie gerade etwas verrannt)
    Zuzusagen ist vielleicht das ich mich gerade erst in Javascript einarbeite.

    PHP Code aktuell:

      
    $output['pferdelist'] = '<input class="logsub" name="newhorse" type="submit" value="'.$reiterupferdlist[5].'" onclick="addhorse(\''.$reiterupferdlist[6].'\')">'  
    
    

    Javascript Code ist:

      
    	function addhorse(horsename) {  
    		var newLi = document.createElement('li');  
    		var liNr = addhorseNr + 1;  
    		var newLiText = document.createTextNode(horsename+': <input class="loginput" name="hrseliname'+liNr+'" type="text" size="20" maxlenght="40">');  
    		document.getElementById('horselist').appendChild(newLi);  
    		document.getElementsByTagName('li')[addhorseNr].appendChild(newLiText);  
    	}  
    
    

    Und jetzt knallt er mir ein
    "
      ReferenceError: addhorse is not defined
      addhorse('Pferdename')
    "

    Komme irgendwie nicht dahinter wo ich da ansetzten soll. :(

    1. Tach!

      PHP Code aktuell:

      $output['pferdelist'] = '<input class="logsub" name="newhorse" type="submit" value="'.$reiterupferdlist[5].'" onclick="addhorse(''.$reiterupferdlist[6].'')">'

        
      Bist du sicher, dass in den beiden Variablen keine Zeichen enthalten sind, die im HTML- und Javascript-Kontext eine besondere Bedeutung haben?  
        
      
      > Und jetzt knallt er mir ein  
        
      Wer ist „er“? Und in welcher Situation macht „er“ das?  
        
      
      >   ReferenceError: addhorse is not defined  
        
      Scheint so, als ob das addhorse zum Zeitpunkt des Aufrufs (noch) nicht existiert.  
        
        
      dedlfix.
      
      1. Bist du sicher, dass in den beiden Variablen keine Zeichen enthalten sind, die im HTML- und Javascript-Kontext eine besondere Bedeutung haben?

        Die Variablen bestehen nur aus Wörtern und haben keinerlei Sonderzeichen in sich.

        Wer ist „er“? Und in welcher Situation macht „er“ das?

        Ich benutze Firebug für Firefox und dieser wirft mir den Fehler aus wenn ich die Funktion auf der Seite mittels des vorgesehenen Button aktivieren möchte.

        Scheint so, als ob das addhorse zum Zeitpunkt des Aufrufs (noch) nicht existiert.

        Ich binde den Javascript über eine extra Datei ein und diese wird im Header des HTML aufgerufen.

        1. Tach!

          Bist du sicher, dass in den beiden Variablen keine Zeichen enthalten sind, die im HTML- und Javascript-Kontext eine besondere Bedeutung haben?
          Die Variablen bestehen nur aus Wörtern und haben keinerlei Sonderzeichen in sich.

          Wenn du das garantieren kannst, dann ist ja gut. Ansonsten schadet es auch in solch einem Fall nicht, htmlspecialchars() und die im Kontextwechselartikel stehende Javascript-Escape-Funktion einzubauen.

          Scheint so, als ob das addhorse zum Zeitpunkt des Aufrufs (noch) nicht existiert.
          Ich binde den Javascript über eine extra Datei ein und diese wird im Header des HTML aufgerufen.

          Und zeigt der Firebug sie denn auch an, wenn du im Script-Panel nachschaust?

          dedlfix.

          1. Bist du sicher, dass in den beiden Variablen keine Zeichen enthalten sind, die im HTML- und Javascript-Kontext eine besondere Bedeutung haben?
            Die Variablen bestehen nur aus Wörtern und haben keinerlei Sonderzeichen in sich.

            Wenn du das garantieren kannst, dann ist ja gut. Ansonsten schadet es auch in solch einem Fall nicht, htmlspecialchars() und die im Kontextwechselartikel stehende Javascript-Escape-Funktion einzubauen.

            Scheint so, als ob das addhorse zum Zeitpunkt des Aufrufs (noch) nicht existiert.
            Ich binde den Javascript über eine extra Datei ein und diese wird im Header des HTML aufgerufen.

            Und zeigt der Firebug sie denn auch an, wenn du im Script-Panel nachschaust?

            Also Firebug zeigt bei "Script" als Zeile folgendes an:
            ....
            <input class="logsub" name="newhorse" type="submit" value="weiteres Pferd hinzufuegen" onclick="addhorse('Pferdename')">
            .....

            Wo genau kann ich den sehen ob die Funktionen bereits aktiv sind? Ist das nicht gewährleistet wenn ich die Datei im Header einbinde?

            1. Tach!

              Wo genau kann ich den sehen ob die Funktionen bereits aktiv sind? Ist das nicht gewährleistet wenn ich die Datei im Header einbinde?

              In der Skript-Lasche gibt es ein Select-Feld, das muss deine eingebundene Datei anzeigen. Wenn nicht, wurde sie nicht geladen, warum auch immer. Du solltest auch in der Netzwerklasche einen erfolgreichen Request nach dieser Ressource sehen.

              dedlfix.

              1. Tach!

                Wo genau kann ich den sehen ob die Funktionen bereits aktiv sind? Ist das nicht gewährleistet wenn ich die Datei im Header einbinde?

                In der Skript-Lasche gibt es ein Select-Feld, das muss deine eingebundene Datei anzeigen. Wenn nicht, wurde sie nicht geladen, warum auch immer. Du solltest auch in der Netzwerklasche einen erfolgreichen Request nach dieser Ressource sehen.

                dedlfix.

                Ok also...
                Wie du schon gesagt hast war die JS Datei nicht korrekt eingebunden (Falscher Dateipfad durch mehrfach eingebundene Dateien ;) )

                Der ganze Javascript funktioniert trotzdem nicht, anscheinend stell ich mich irgendwo einfach noch ein wenig zu dumm an ... Aber da werd ich mich schon irgendwie durchgooglen können.

                Eine letzte Frage jedoch noch. Meine Seite ist auf ANSI aufgebaut. Firebug wirft mir jetzt jedoch einen Fehler aus:
                "A form was submitted in the windows-1252 encoding which cannot encode all Unicode characters, so user input may get corrupted. To avoid this problem, the page should be changed so that the form is submitted in the UTF-8 encoding either by changing the encoding of the page itself to UTF-8 or by specifying accept-charset=utf-8 on the form element."

                Heist ja so viel wie das es ein Problem mit der Kodierung gibt und ich auf UTF-8 umstellen soll um es zu beheben. Läuft Javascript nicht auf ANSI und macht mir dadurch die Probleme das keine Funktion ensteht?

                1. Tach!

                  Meine Seite ist auf ANSI aufgebaut. Firebug wirft mir jetzt jedoch einen Fehler aus:
                  "A form was submitted in the windows-1252 encoding which cannot encode all Unicode characters, so user input may get corrupted. To avoid this problem, the page should be changed so that the form is submitted in the UTF-8 encoding either by changing the encoding of the page itself to UTF-8 or by specifying accept-charset=utf-8 on the form element."

                  Heist ja so viel wie das es ein Problem mit der Kodierung gibt und ich auf UTF-8 umstellen soll um es zu beheben.

                  Das heißt, dass es ein Problem geben _kann_. Wenn die Anwender nur Zeichen eingeben, die in Windows-1252 enthalten sind, dann wirst du nichts bemerken. Da aber Webseiten und Browser generell Unicode als Zeichensatz haben, und Nutzer all dessen Zeichen eingeben können, bekommt der Browser ein Problem, wenn er Zeichen in andere Kodierungen als UTF-x kodieren soll. Die Browser greifen dann zu Ersatzmaßnahmen wie NCRs (&#x0815;). Solche Zeichenfolgen hast du dann in deiner Eingabe und kannst sie noch nicht einmal von normal eingegebenen & und absichtlich eingegebenen NRCs/Entitys unterscheiden (was selten vorkommen mag, wenn das Thema nicht HTML & Co. ist), weil diese nämlich nicht zu &amp; umkodiert werden, worauhin du hättest eine Entity-Decode-Funktion drüberlaufen lassen könntest. Kurz gesagt: Man möchte diese möglichen und nicht anständig behebbaren Probleme nicht haben. Deshalb ist es vorteilhaft, komplett auf Unicode-Verarbeitung umzusteigen. Als Einstieg empfehle ich dir http://wiki.selfhtml.org/wiki/Grundlagen/Praxisnah/Zeichenkodierung_und_geschriebene_Sprache.

                  Läuft Javascript nicht auf ANSI und macht mir dadurch die Probleme das keine Funktion ensteht?

                  Javascript hat mit Zeichenkodierung nichts weiter am Hut. Das ist im Browser eingebettet und bekommt alles von ihm mundgerecht vorgesetzt. Wichtig für dich ist nur, dass du deine Dokumente mit einer bestimmten Kodierung erstellt, das dem Empfänger (Browser) über die üblichen Wege korrekt mitteilst, und alles wird gut. Wie das konkret geht, steht auch in unserem Wiki, ein Link ist im oben angegebenen Dokument am Ende zu finden. Und natürlich kannst du auch hier Fragen stellen.

                  dedlfix.

                  1. Danke dir das war jetzt auf jeden Fall sehr Informativ was der Zeichensatz eigentlich aussagt. Als ich eine Zeit lang mit einem alten Freund Programmiert habe meinte er wir machen das in ANSI.

                    Aktuell verzweifel ich jetzt jedoch an meiner Seite. Bisher lief sie fehlerfrei und seid ich angefangen habe Java einzubinden kommt ein Fehler nach dem anderen. Bisher nur Javascript Probleme doch habe ich die Seiten auf UTF-8 umgestellt und die Zeichen im Code angepasst und jetzt habe ich auch noch ein:
                    "
                    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /....../v2_0/index.php:1) in /...../v2_0/global.php on line 2

                    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /...../v2_0/index.php:1) in /....../v2_0/global.php on line 2
                    "
                    Welche ich nicht mehr raus bekomme.
                    Es gibt keinerlei Ausgabedaten an den Browser bevor die Session gesetzt wird und das Cookie für die Sprache.
                    Und das beste. Obwohl jetzt die Verbindung zur JS Datei besteht und bei den Scripten keine Fehler angezeigt werden, werden diese immer noch nicht ausgeführt....

                    Dedlfix gibt es einen Weg dir eine Private Nachricht zu senden? Zwecks Privater Anfrage

                    1. Tach!

                      Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /....../v2_0/index.php:1) in /...../v2_0/global.php on line 2

                      Es gibt keinerlei Ausgabedaten an den Browser bevor die Session gesetzt wird und das Cookie für die Sprache.

                      Oh doch, diese Fehlermeldung hat noch nie gelogen. Ausgaben sind natürlich echo und Konsorten, aber auch alles was außerhalb von <?php ?> steht. Das kann auch ein Zeilenumbruch nach einem ?> am Dateiende sein (Lösung dafür: ?> weglassen, ist am Dateiende optional).

                      Und das beste. Obwohl jetzt die Verbindung zur JS Datei besteht und bei den Scripten keine Fehler angezeigt werden, werden diese immer noch nicht ausgeführt....

                      Dann wäre es günstig, wenn du die Sache mal online hast, damit sich das mal jemand anschauen kann.

                      Dedlfix gibt es einen Weg dir eine Private Nachricht zu senden? Zwecks Privater Anfrage

                      Nee, das mag ich nicht. Bei einer Privat-„Behandlung“ fehlt außerdem das Korrektiv des Forums, wenn ich einen Fehler in meiner Antwort habe.

                      dedlfix.

                      1. Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /....../v2_0/index.php:1) in /...../v2_0/global.php on line 2

                        Es gibt keinerlei Ausgabedaten an den Browser bevor die Session gesetzt wird und das Cookie für die Sprache.

                        Oh doch, diese Fehlermeldung hat noch nie gelogen. Ausgaben sind natürlich echo und Konsorten, aber auch alles was außerhalb von <?php ?> steht. Das kann auch ein Zeilenumbruch nach einem ?> am Dateiende sein (Lösung dafür: ?> weglassen, ist am Dateiende optional).

                        Die Sache ist ja die das nichts geändert wurde bis auf die Umstellung auf UTF-8 und die Seite davor Problemlos lief. Aber soweit mir der Artikel über die Kodierungen auch klar gemacht hat, hat das keine Einwirkung auf die Funktionalität der Seite? Zumindest nicht negativ bei ANSI auf UTF-8.
                        Es gibt lediglich eine Ausgabe ganz am Ende des Kompletten Programmes an den Browser. Auserhalb des <?php ?> Bereiches gibt es keine Angaben, auch keine Zeilenumbrüche.

                        Und das beste. Obwohl jetzt die Verbindung zur JS Datei besteht und bei den Scripten keine Fehler angezeigt werden, werden diese immer noch nicht ausgeführt....

                        Dann wäre es günstig, wenn du die Sache mal online hast, damit sich das mal jemand anschauen kann.

                        Dedlfix gibt es einen Weg dir eine Private Nachricht zu senden? Zwecks Privater Anfrage

                        Nee, das mag ich nicht. Bei einer Privat-„Behandlung“ fehlt außerdem das Korrektiv des Forums, wenn ich einen Fehler in meiner Antwort habe.

                        Bescheiden also auch noch ;-) Jedoch muss man auch sagen das es ab und zu einfacher und besser ist sich etwas "vor Ort" anzusehen. Es geht dabei auch nicht nur um die Fehlerbehandlung. Ich benötige die Seite für Gewerbliche zwecke und muss leider sehen das ich zügig weiter komme. Würde mich wirklich freuen wenn du dir bitte zumindest anhörst was ich vorschlage, ablehnen kannst du dann immer noch...

                        1. Tach!

                          Die Sache ist ja die das nichts geändert wurde bis auf die Umstellung auf UTF-8 und die Seite davor Problemlos lief.

                          Du solltest einen Editor nehmen und nicht Notepad. Zu empfehlen wäre unter anderem Notepad++. Der kann UTF-8 ohne BOM speichern. Diese BOM ist ein unsichtbares Zeichen, das für UTF-8 nicht benötigt wird. Vermutlich hast du sie am Dateianfang stehen.

                          dedlfix.

                          1. Die Sache ist ja die das nichts geändert wurde bis auf die Umstellung auf UTF-8 und die Seite davor Problemlos lief.

                            Du solltest einen Editor nehmen und nicht Notepad. Zu empfehlen wäre unter anderem Notepad++. Der kann UTF-8 ohne BOM speichern. Diese BOM ist ein unsichtbares Zeichen, das für UTF-8 nicht benötigt wird. Vermutlich hast du sie am Dateianfang stehen.

                            Also mit der Umstellung auf UTF-8 ohne BOM war wieder alles super. Vielen dank dafür :-)

                            Jetzt muss ich aber nochmal stören da ich leider irgendwie Probleme habe richtig in Javascript reinzukommen....

                            Ich möchte das bei einem Klick auf den Testbutton ein Weiteres Formularfeld erstellt wird.
                            Aktuell ist es so das eine Zeile erstellt wird aber bei dem klick auf den Testbutton nichts passiert. Wie kann ich machen das jedes mal wieder ein Feld entsteht für die spätere weitergabe an PHP.

                            Und so wie es jetzt ist entsteht ja nur eine Zeile im Browser der den Code des Inputfeldes anzeigt. Wie kann ich machen das das als Formularfeld angezeigt wird? Ich habe schon versucht mich mit innerHTML zu spielen aber komme irgendwie auf keinen Grünen Zweig.

                            Hier mal der Code:

                              
                            	function addhorse(horsename, addhorseNr) {  
                            		var newLi = document.createElement('li');  
                            		var liNr = addhorseNr + 1;  
                            		var newLiText = document.createTextNode(horsename+': <input class="loginput" name="hrseliname'+liNr+'" type="text" size="20" maxlenght="40">');  
                            		document.getElementById('horselist').appendChild(newLi);  
                            		document.getElementsByTagName('li')[addhorseNr].appendChild(newLiText);  
                            	return addhorseNr;  
                            	}  
                            
                            
                              
                            <form name="activation" action="seite" method="post">  
                              
                            <ol id="horselist"><li></li></ol>  
                              
                            <a href="" onklick="addhorse(\'Pferdename\', 2);">test</a>  
                            </form>  
                              
                              
                            <script type="text/javascript">  
                              
                            document.getElementById(\'horselist\').removeChild(document.getElementById(\'horselist\').firstChild);  
                            window.onload=addhorse(\'Pferdename\', 0);  
                              
                            </script>  
                            
                            

                            Zuzusagen:
                            Nicht über die ' wundern da der HTML Code später in PHP stehen soll.
                            Und der Javascript wurde in eine Extra Datei ausgelagert. Verbindung steht und wird im DOM angezeigt.

                            1. Kann mir keiner helfen in diesem Fall? Ich suche und suche aber komme wirklich nicht weiter....

                              Ich möchte das bei einem Klick auf den Testbutton ein Weiteres Formularfeld erstellt wird.
                              Aktuell ist es so das eine Zeile erstellt wird aber bei dem klick auf den Testbutton nichts passiert. Wie kann ich machen das jedes mal wieder ein Feld entsteht für die spätere weitergabe an PHP.

                              Und so wie es jetzt ist entsteht ja nur eine Zeile im Browser der den Code des Inputfeldes anzeigt. Wie kann ich machen das das als Formularfeld angezeigt wird? Ich habe schon versucht mich mit innerHTML zu spielen aber komme irgendwie auf keinen Grünen Zweig.

                              Hier mal der Code:

                              function addhorse(horsename, addhorseNr) {
                              var newLi = document.createElement('li');
                              var liNr = addhorseNr + 1;
                              var newLiText = document.createTextNode(horsename+': <input class="loginput" name="hrseliname'+liNr+'" type="text" size="20" maxlenght="40">');
                              document.getElementById('horselist').appendChild(newLi);
                              document.getElementsByTagName('li')[addhorseNr].appendChild(newLiText);
                              return addhorseNr;
                              }

                              
                              >   
                              >   
                              > ~~~html
                                
                              
                              > <form name="activation" action="seite" method="post">  
                              >   
                              > <ol id="horselist"><li></li></ol>  
                              >   
                              > <a href="" onklick="addhorse(\'Pferdename\', 2);">test</a>  
                              > </form>  
                              >   
                              >   
                              > <script type="text/javascript">  
                              >   
                              > document.getElementById(\'horselist\').removeChild(document.getElementById(\'horselist\').firstChild);  
                              > window.onload=addhorse(\'Pferdename\', 0);  
                              >   
                              > </script>  
                              > 
                              
                              

                              Zuzusagen:
                              Nicht über die ' wundern da der HTML Code später in PHP stehen soll.
                              Und der Javascript wurde in eine Extra Datei ausgelagert. Verbindung steht und wird im DOM angezeigt.

                              1. Inzwischen habe ich die Lösung gefunden.

                                Vielen Dank aber dennoch für die ganzen anderen Hilfestellungen.

                                1. Inzwischen habe ich die Lösung gefunden.

                                  Ich konnte dir leider nicht helfen,
                                  würde dich aber trotzdem gerne bitten, die Lösung zu posten,
                                  damit, falls jemand anderes auf ein ähnliches, gar gleiches, Problem trifft,
                                  schon im Archiv auf die Lösung stoßen kann.

                                  MfG
                                  bubble

                                  --
                                  If "god" had intended us to drink beer, he would have given us stomachs. - David Daye
                                  1. Inzwischen habe ich die Lösung gefunden.

                                    Ich konnte dir leider nicht helfen,
                                    würde dich aber trotzdem gerne bitten, die Lösung zu posten,
                                    damit, falls jemand anderes auf ein ähnliches, gar gleiches, Problem trifft,
                                    schon im Archiv auf die Lösung stoßen kann.

                                    MfG
                                    bubble

                                    Oh ok sorry ;-) Entschuldigt die Verzögerung aber ich habe noch einen "Entfernen" Button angefügt.
                                    Für die Profis unter euch wird es sicher kein Meisterwerk sein, aber ich bin glücklich damit :D

                                    Also ich habe "on>k<lick" statt "on>c<lick" geschrieben was da schon mal zu einer Funktionslosigkeit geführt hat. (ich habe meinen Kopf gegen die Wand geschlagen als ich diesen dummen Fehler endlich gesehen habe)
                                    Dann musste ich noch besser zuordnen welches Element ich eigentlich ansprechen möchte weil es da scheinbar Missverständnisse gab.

                                    Hier noch einmal der volle funktionsfähige Code. Kann in dieser Form überall eingebaut werden.

                                    In der PHP Datei als echo Ausgabe: (für Verwendung in HTML einfach die \ und PHP Befehle entfernen)

                                      
                                    $echo = '  
                                      
                                    <html><head><title>Test</title>  
                                    <script language="javascript" type="text/javascript" src="javascript.js"></script>  
                                    </head>  
                                      
                                      
                                      
                                    <body>  
                                    <form name="activation" action="seite" method="post">  
                                      
                                    <ol id="riderlist"><li></li></ol>  
                                      
                                    <a href="#" onclick="addrider(\'Vorname\', \'Nachname\')">test</a>  
                                      
                                      
                                    <ol id="horselist"><li></li></ol>  
                                      
                                    <a href="#" onclick="addhorse(\'Pferdename\')">test</a>  
                                      
                                    </form>  
                                      
                                      
                                    <script type="text/javascript">  
                                      
                                    addriderNr = 0;  
                                    addhorseNr = 0;  
                                    addriderNri = 0;  
                                    addhorseNri = 0;  
                                    document.getElementById(\'horselist\').removeChild(document.getElementById(\'horselist\').firstChild);  
                                    document.getElementById(\'riderlist\').removeChild(document.getElementById(\'riderlist\').firstChild);  
                                      
                                    function winstart() {  
                                    	for(var i = 0; i < 3; i++) {  
                                    		addrider(\'Vorname\', \'Nachname\');  
                                    		addhorse(\'Pferdename\');  
                                    		}  
                                    }  
                                      
                                    window.onload=winstart();  
                                      
                                    </script>  
                                    </body></html>  
                                      
                                    ';  
                                      
                                      
                                    echo $echo;  
                                      
                                    
                                    

                                    Und der Javascript in der ausgelagerten Datei:

                                      
                                    	function addrider(rider1, rider2) {  
                                    		var newLi = document.createElement('li');  
                                    		var newLiText = document.innerHTML = rider1+': <input class="loginput" name="rdlivname[]" type="text" size="10" maxlenght="40">&nbsp;&nbsp;'+rider2+': <input class="loginput" name="rdlinname[]" type="text" size="10" maxlenght="40">&nbsp;<a href="#" onclick="removeField(\'riderlist\', \'ridnr'+addriderNri+'\')">Entfernen</a>';  
                                    		newLi.id = 'ridnr'+addriderNri;  
                                    		document.getElementById('riderlist').appendChild(newLi);  
                                    		document.getElementById('riderlist').getElementsByTagName('li')[addriderNr].innerHTML=newLiText;  
                                    		addriderNr++;  
                                    		addriderNri++;  
                                    	}  
                                    	  
                                    	  
                                    	  
                                    	function addhorse(horsename) {  
                                    		var newLi = document.createElement('li');  
                                    		newLi.id = 'hrsnr'+addhorseNri;  
                                    		var newLiText = document.innerHTML = horsename+': <input class="loginput" name="hrseliname[]" type="text" size="20" maxlenght="40">&nbsp;<a href="#" onclick="removeField(\'horselist\', \'hrsnr'+addhorseNri+'\')">Entfernen</a>';  
                                    		document.getElementById('horselist').appendChild(newLi);  
                                    		document.getElementById('horselist').getElementsByTagName('li')[addhorseNr].innerHTML=newLiText;  
                                    		addhorseNr++;  
                                    		addhorseNri++;  
                                    	}  
                                      
                                    	function removeField(ID, line) {  
                                    		var element = document.getElementById(line);	  
                                    		document.getElementById(line).remove(element);  
                                    		  
                                    		switch(ID) {  
                                    			case 'riderlist':  
                                    				addriderNr--;  
                                    				break;  
                                    			case 'horselist':  
                                    				addhorseNr--;  
                                    				break;  
                                    			default:  
                                    				alert('Unbekannter Fehler aufgetreten');  
                                    				break;  
                                    			}  
                                    		}  
                                    
                                    

                                    Kurze Erläuterung:
                                    Es werden zwei Listen erstellt.
                                    Wenn die Seite geladen wird werden von jeder Liste gleich mal drei Einträge vorgefertigt. Weitere können dann über den "test" Button hinzugefügt werden. Über Entfernen kann jeder Eintrag einzeln Entfernt werden.
                                    In der auswertenden Datei ist jedoch dann zu beachten das bei "POST" leere Inhalte ausgegliedert werden, da der Zähler gelöschte Elemente nicht beachtet und so eine Reihenfolge im HTML Code von z.b. 1, 2, 4, 7, 8, 9, 10,.... entstehen kann.

                                    Wie gesagt, nicht Perfekt aber tut was es soll. ;-) Ich hoffe ich konnte jemanden damit helfen.

                                    Lg