INPUT felder funktionieren nich

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • INPUT felder funktionieren nich

    Hi,

    ich wollte bisschen Javascript damit ich folgendes umsetzen konnte:

    PHP-Code:
    <a href="willmehrinputFelder" onClick="HOL MIR EIN WEITERES INPUT FeLD OHNE DIE INHALTE DER ANDEREN ZU ZERSTÖREN()"mehr </a
    Da ich wenig Ahnung von javascript habe kam das hier raus:
    PHP-Code:
    <script type="text/javascript">
    function 
    newinput() {
      var 
    Neu document.createElement("Input");
      var 
    br document.createElement("br");
      var 
    type document.createAttribute("type");
      
    type.nodeValue "file";
      
    Neu.setAttributeNode(type);
      var 
    Ausgabebereich document.getElementById("bereich");
      
    document.all.bereich.appendChild(br);
      
    document.all.bereich.appendChild(br);
      
    document.all.bereich.appendChild(Neu);
    }
    </
    script>

    <
    form action="{$_SERVER['PHP_SELF']}method="post" enctype="multipart/form-data" name="newgalery" class="Stil3" id="newgalery">
             
    <
    label>Galerie-Name
    <input name="galeryname" type="text" />
    </ 
    label><br />
    <
    label><a href="#mehr" onClick=newinput()>Mehr Input</a><br />
    <
    div id="bereich"></div>
    <
    input class="but" type="submit" name="submit" value="Upload" />
                           
    </
    form
    Wenn ich also auf "mehr" klicke, werden mir weitere Input felder erzeugt, ohne die anderen schon vorhandenen Input Felder samt Inhalt zu zerstören.

    Mein Problem:
    Wenn ich nun diese Dateien hochladen möchte, funktioniert das nicht.
    liegt das an dem Javascript ? Muss eigentlich daran liegen, denn wenn ich ein NORMALES input feld erzeuge funktioniert der Upload.

    Wie kann ich das Javascript erstellen, damit das erreicht wird, was ich wollte? d.h. Eine Funktion, die mir neue input felder kreiert, und die ich in PHP irgendwie abfangen kann.


    mein PHP Code:
    PHP-Code:
    foreach ($_FILES as $FileName => $FileInfo)
    { ...
    // hier stehen viele Prüfprozeduren und alles mögliche um die Datei /Dateien leztendlich auf den Server zu packen 


    hoff mal ich hab mich deutlich genug ausgedrückt

  • #2
    dein input feld benötigt noch einen namen....
    also neues Attribut hinzufügen (wie du es auch schon mit "type" gemacht hast)... wichtig: name nicht doppelt vergeben... entweder als array oder hochzählen..

    das sollte in der theorie schon alles sein...

    außerdem muss das input natürlich innerhalb des form liegen (wovon ich aber sowieso ausgehe)

    greetz, high
    Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
    When everything else fails, manipulate the data...
    Beschriftungen / Großformatdruck / Werbemittel

    Kommentar


    • #3
      ich danke Dir , werde es nachher mal versuchen.

      Kommentar


      • #4
        PHP-Code:
            <script type="text/javascript">
                        function 
        newinput() {
                        var 
        counter;
                        
        counter counter +1;
                        var 
        Neu document.createElement("Input");
                        var 
        br document.createElement("br");
                        var 
        type document.createAttribute("type");
                        var 
        name document.createAttribute("name");
                        
        type.nodeValue "file";
                        
        name.nodeValue "id"+counter;
                        
        Neu.setAttributeNode(type);
                        
        Neu.setAttributeNode(name);
                        var 
        Ausgabebereich document.getElementById("bereich");
                        
                        
        //Ausgabebereich.appendChild(br);
                          
        document.all.bereich.appendChild(br);
                          
        document.all.bereich.appendChild(br);
                          
        document.all.bereich.appendChild(Neu);
                        } 
        so geht's wenigstens mit einer Datei, sobalds 2 sind passiert wieder nix. Ich dachte mir ich koennte so: name.nodeValue = "id"+counter; irgendwie verhindern dass der Dateiname nicht gleich bleibt.
        Wie kann man's denn richtig machen?? Denn so scheints falsch zu sein

        Kommentar


        • #5
          die idee ist gut...

          allerdings hast du ein problem mit der sichtbarkeit von counter...

          die variable counter gehört so mit zur funktion und beginnt bei jedem funktionsaufruf wieder von vorne...

          definiere counter außerhalb der funktion einmalig und initialisiere zum beispiel mit einem wert von 0

          greetz, high
          Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
          When everything else fails, manipulate the data...
          Beschriftungen / Großformatdruck / Werbemittel

          Kommentar


          • #6
            Ist es denn normal, dass dieser Javascript schnipsel unter Firefox nicht funktioniert, obwohl JAVASCRIPT aktiviert ist ??
            Wenn nicht normal, woran liegts denn dann ?


            also beim Inet explorer funktionierts jetzt wunderbar

            Kommentar


            • #7
              was sagt denn die js-konsole, wo es scheitert?

              Kommentar


              • #8
                die js konsole ist ganz ruhig und sagt gar nix


                es scheint also nicht normal zu sein ?


                hab noch ne zweite frage im zusammenhang mit input fields.
                Wie kann ich die Anzahl an zeichen, die bisher in einem input field stehen ermitteln ?? habs schon mit length irgendwie versucht, aber scheint ja nicht zu klappen

                PHP-Code:
                 keylength document.getElementById("keywords").length

                Kommentar


                • #9
                  die js konsole ist ganz ruhig und sagt gar nix
                  so mache testausgaben und überzeuge dich, ob alle variablen den erwarteten wert haben.

                  Wie kann ich die Anzahl an zeichen, die bisher in einem input field stehen ermitteln ??
                  fast richtig: length muss sich auf das attribut "value" beziehen.

                  Kommentar


                  • #10
                    ich hatte die Fehlerkonsole deaktiviert ... so nun folgendes ergebnis:

                    document.all. has no proprieties



                    hmm. was is denn an dem code falsch ???
                    PHP-Code:
                                      document.all.bereich.appendChild(br);
                                      
                    document.all.bereich.appendChild(br);
                                      
                    document.all.bereich.appendChild(Neu); 

                    und Thx für den hinweis, Value.length zu benutzen ^^

                    Kommentar


                    • #11
                      http://de.selfhtml.org/javascript/objekte/all.htm
                      benutze lieber dom-methoden.

                      Kommentar


                      • #12
                        könntest mir nen beispiel für so ne Dom methode geben ?
                        document.GetElementByID... ? is das ne Dom methode ?!

                        Kommentar


                        • #13
                          http://de.selfhtml.org/javascript/objekte/document.htm

                          Kommentar

                          Lädt...
                          X