Cypog: Eingabefeld dynamisch erstellen

Hallo,
ich habe versucht ein Eingabefeld dynamisch zu erstellen:

Das ist die Funktion:

function CreateElementEx(element, attributes, attribute_values, content, id)
 {
  var elementID = document.createElement(element);
  for (var i = 0; i < length(attributes); i++)
  {
   var e_attribute = document.createAttribute(attributes[i]);
   e_attribute.nodeValue = attribute_values[i];
   elementID.setAttributeNode(e_attribute);
  }
  var e_text = document.createTextNode(content);
  elementID.appendChild(e_text);
  var a_element = getElementById(id)<,
  a_element.appendChild(elementID);
 }

und hier wird sie aufgerufen:

echo "<td>";
      //echo "<input type='button' value='Einfügen:' onclick='InsertText(this.form.Text, this.form.e_inhalt)'>";
      echo "Einfügen: ";
      echo "<select name='einf' onchange='CreateElementEx("input", Array("type", "name"), Array("text", "e_inhalt"), "", "Eingabebereich")'>";
       echo "<option value='0'>Bild</option>";
       echo "<option value='1'>URL</option>";
      echo "</select>";
     echo "</td>";
     echo "<td id='Eingabebereich'>";
      //echo "URL: <input type='text' name='e_inhalt'>";
     echo "</td>";

Wäre toll, wenn mir jm. helfen könnte.

Schöne Grüße

Cypog

  1. Das ist die Funktion:

    function CreateElementEx(element, attributes, attribute_values, content, id)
    {
      var elementID = document.createElement(element);
      for (var i = 0; i < length(attributes); i++)
      {
       var e_attribute = document.createAttribute(attributes[i]);
       e_attribute.nodeValue = attribute_values[i];
       elementID.setAttributeNode(e_attribute);
      }
      var e_text = document.createTextNode(content);
      elementID.appendChild(e_text);
      var a_element = getElementById(id)<,
      a_element.appendChild(elementID);
    }

    und hier wird sie aufgerufen:

    Nein, da wird nichts aufgerufen. Da wird eine PHP-Datei geparsed und der resultierende (HTML) Quelltext zum Browser geschickt. Uns interessiert aber nur der angekommene Quelltext und ich habe keine Lust das jetzt umwandeln zu lassen.

    echo "<td>";
          //echo "<input type='button' value='Einfügen:' onclick='InsertText(this.form.Text, this.form.e_inhalt)'>";
          echo "Einfügen: ";
          echo "<select name='einf' onchange='CreateElementEx("input", Array("type", "name"), Array("text", "e_inhalt"), "", "Eingabebereich")'>";
           echo "<option value='0'>Bild</option>";
           echo "<option value='1'>URL</option>";
          echo "</select>";
         echo "</td>";
         echo "<td id='Eingabebereich'>";
          //echo "URL: <input type='text' name='e_inhalt'>";
         echo "</td>";

    Wäre toll, wenn mir jm. helfen könnte.

    Wobei denn? Es gibt keine (vernünftige) Problembeschreibung, nicht mal ein "funzt nicht"!
    Also sag uns, was deiner Meinung nach passieren sollte, was aber stattdessen passiert, woran das deiner Meinung nach liegen könnte und was du schon probiert hast, um das Problem zu lösen.

    1. Damit ihr euch das besser vorstellen könnt:
      http://jetzreichts.de/php/shop/index.php?site=news&action=add

      Wenn man "Bild" oder "URL" auswählt, sollte ein Eingabefeld unter dem Textfeld erscheinen, es passiert aber gar nix.

      Im Quellcode ist demnzufolge auch nichts zu sehen, ich schau mir immer erst den Quellcode an, wenn ein Problem auftritt.

      1. Im Quellcode ist demnzufolge auch nichts zu sehen, ich schau mir immer erst den Quellcode an, wenn ein Problem auftritt.

        im Quellcode ist sehr wohl was zu sehen, nämlich ein Tippfehler am Ende der Zeile 30.
        Wie schon vermerkt wurde ist ein Blick in die Fehler-Konsole des Firefox bei JavaScript-Problemen immer sehr hilfreich. Dann hättest du diesen Fehler selbst entdeckt.

        1. Im Quellcode ist demnzufolge auch nichts zu sehen, ich schau mir immer erst den Quellcode an, wenn ein Problem auftritt.

          im Quellcode ist sehr wohl was zu sehen, nämlich ein Tippfehler am Ende der Zeile 30.
          Wie schon vermerkt wurde ist ein Blick in die Fehler-Konsole des Firefox bei JavaScript-Problemen immer sehr hilfreich. Dann hättest du diesen Fehler selbst entdeckt.

          Ok, hab diese Konsole gerade erst entdeckt, danke für eure Hilfe.

          1. Habs jetzt ausgebessert, funktioniert leider immer noch nicht.

            1. Mahlzeit,

              Habs jetzt ausgebessert, funktioniert leider immer noch nicht.

              "Funktioniert nicht" ist keine aussagekräftige Fehlermeldung. Was genau steht denn in der Fehlerkonsole? Wird das Skript einfach so ohne Rückmeldung nicht ausgeführt? Hast Du mal versucht, an kritischen Punkten "alert()"-Meldungen o.ä. einzubauen? Woher sollen wir wissen, was nicht klappt - funktionierende Glaskugeln sind eher selten.

              Den von noscript angemerkten Fehler hast Du behoben?

              MfG,
              EKKi

              --
              sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
              1. Die Fehlerkonsole gibt nichts aus. Es gibt keine Fehlermeldung. Es passiert einfach nichts. Danke für den Tip mit alert(), length(attributes) scheint wohl für den Abbruch der Funktion verantwortlich zu sein, warum weiß ich auch noch nicht.

                1. Ok, keine Funktionen! Objekte! Funktioniert jetzt einwandfrei.

                  Danke für eure Hilfe

                2. Hallo,

                  ..., length(attributes) scheint wohl für den Abbruch der Funktion verantwortlich zu sein, warum weiß ich auch noch nicht.

                  Ein Blick auf http://de.selfhtml.org/javascript/objekte/array.htm#length könnte dir Klarheit verschaffen ...

                  Gruß plan_B

                  --
                       *®*´¯`·.¸¸.·
  2. Hallo,

    wenn ein "funzt nicht" auch nicht hilfreich gewesen wäre, so hätte dir vielleicht ein Blick in die Fehlerkonsole des Browsers (Firefox o. Opera) einen ersten Hinweis gegeben.

    so wie <br> und <hr> ist auch <input> ein leeres Element, d.h. sie haben keine childNodes und ein input.appendChild(textnode) wäre fatal

    Gruß plan_B

    --
         *®*´¯`·.¸¸.·