• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Javaskript Hilfe... forschleife

Hallo zusammen,

seit kurzem arbeite ich mich Javaskript. Jetzt habe ich ein Problem.
Ich will meinen Besuchern die Möglichkeit geben, dass sie meherere Sprachen auswählen können.

Ein <input> Feld wird schon sofort integriert, doch rechts daneben steht. Weitere Sprache hinzufügen?. Sobald man dadrauf klickt, soll noch ein Input Feld hinzugefügt werden. Das was ich kurzfristig geschrieben habe, funktioniert eig. Aber nur gibt es Probleme mit der Foreach Schleife, denn dort erscheint wieder nur eine Box, anstatt in diesem Falle 2.

Schaut mal den Code:
PHP:
<script type="text/javascript" language="JavaScript">

 function openL( number ){ 
   if( number >= 2 ){
     for( i=1; i <= number; i++ ){
       zusatz = '<input type="text" name="l_'+i+'" value="Test">';
     } 
       newnumber = number+1;
       document.getElementById("L").innerHTML = zusatz+'<a href="#" onclick="openL('+newnumber+')">Weitere Sprachen hinzufügen?</a>';
   }
 }

</script>

<?php
    echo'<span id="L">
            <input type="text" name="l_1" value="Deutsch"> <a href="#" onclick="openL(5)">Weitere Sprachen hinzufügen?</a>
         </span>';
?>
 
Werbung:
Du müsstest die JavaScript-Variable mit dem zusätzlichen Auswahlfeld ergänzen, bei deinem Quellcode wird sie momentan bei jedem Durchlauf der forschleife überschrieben.

Code:
zusatz = [COLOR="red"]zusatz + [/COLOR]'<input type="text" name="l_'+i+'" value="Test">';
 
Werbung:
Wie sollte ich es bei mir anschauen, wenn Du keinen Link postest?
Wie sollte ich erkennen was Du falsch geschrieben hast, wenn Du den Code nach der Anpassung nicht gepostet hast?
 
Hallo,

anstatt jedesmal einen neuen Namen zu definieren (name Attribute) verwende gleich ein Array.
Bsp.: <input type="text" name="langs[]" value="myValue">
Du kannst dann serverseitig z.B mit PHP ohne Probleme darauf zugreifen.
 
Werbung:
anstatt jedesmal einen neuen Namen zu definieren (name Attribute) verwende gleich ein Array.
Bsp.: <input type="text" name="langs[]" value="myValue">
Du kannst dann serverseitig z.B mit PHP ohne Probleme darauf zugreifen.
Das ist ein PHP typisches Feature, den Namen der Formularelemente mit dem Indexoperator zu verunstalten.

In anderen Sprachen reicht es aus, einfach die gleichen Namen zu verwenden. Auch für den JS Zugriff ist dies günstiger, da du dann direkt auf das Array (oder korrekter: HTMLCollection) zugreifen kannst und nicht die etwas umständlichere Schreibweise bemühen musst.
 
Das ist ein PHP typisches Feature, den Namen der Formularelemente mit dem Indexoperator zu verunstalten.

In anderen Sprachen reicht es aus, einfach die gleichen Namen zu verwenden. Auch für den JS Zugriff ist dies günstiger, da du dann direkt auf das Array (oder korrekter: HTMLCollection) zugreifen kannst und nicht die etwas umständlichere Schreibweise bemühen musst.

ich glaube 90% der Entwickler hier verwenden PHP für ihre Projekte und außerdem spielt das keine rolle ob man das "Name - Attribute" verunstaltet.
 
Werbung:
mmh erklär mir mal wo der unterschied für javascript ist ob ich auf name="example" oder name="example[]" zugreife? Oder überseh ich da was? :)
Im zweiten Fall musst du den Umweg über den Indexoperator gehen.
var element = document.form.example;
var element = document.form['example[]'];
 
Werbung:
Zurück
Oben