Ben: weitläufiges Problem

Mahlzeit,

hab da ein Problem, das mir anscheinend noch den letzten Nerv raubt. Ich bin dabei, ein Formular zu erstellen.

Dieses Formular enthält ein input, in welches die anzahl von Zimmern (das ganze ist für eine Ferienobjekt-Börse) eingetragen wird. Durch eine for-Schleife werden dann dieser Zahl entsprechend viele einzelne Tabellen ausgegeben, in denen man einen Namen für die einzelnen Zimmer angeben kann. Dies soll jedoch in einem PopUp geschehen. So weit, so gut. Die Nummer des Zimmers übergebe ich in der For-Schleife durch die URL mit. Diese wird dann in dem PopUp-Fenster ausgelesen, in die Überschrift eingetragen und an den Namen des Input-Feldes gehängt.

Nun habe ich das Problem, dass ich über das nächste Skript, das die Daten zurück übergeben soll, den Inhalt des Input-Feldes nicht mehr auslesen kann. In meinem Ansatz habe ich versucht, die variable url, welche die zahl enthält in ein verstecktes input-feld zu schreiben, um sie in der nächsten funktion wieder auslesen zu können (document.hinzufuegen.id.). Wenn ich diese jedoch auslesen will, gibt er sie als "undefined" zurück. Darum schaffe ich es wahrscheinlich nicht, den eingegebenen Zimmernamen in den opener zu übernehmen.

Ich hoffe, das mein Problem einigermaßen verständlich ist und mir jemand etwas auf die Sprünge helfen kann.

So sehen die Funktionen aus:

<script language="JavaScript">
<!--
function neu() {
var url = window.location.search;
url = url.substring(1,url.length);
var url = url.replace(/id=/," ");
document.hinzufuegen.id.value = url;
document.all.bearbeitung.innerHTML = "Zimmerbearbeitung "+url;
document.all.zimmername.innerHTML = "Zimmername: <input type="text" name="name"+url+"">";
 }

function uebernahme() {
var url = document.hinzufuegen.id.value;
opener.document.eingabe.flaeche.value = document.hinzufuegen.name[url].value;

}
//-->
</script>

Vielen Dank im Voraus für Eure Bemühungen. :)

Schöne Grüße,
Ben

  1. Hallo.

    Das klingt etwas kompleziert, ist es aber nach einigem Lesen nicht ...

    document.hinzufuegen.id.value
    Was bedeuted das id?? Ist das der Name des inputs??
    Also das ganze sollte so ausschauen:
      document.formularname.inputname.value

    Ein Feld darf nicht id heissen, weil id eine vordefinierte Variable ist ...

    Ich hoffe, dass ich dir einigermaßen helfen konnte,

    MM

    1. Hi,

      document.hinzufuegen.id.value
      Was bedeuted das id?? Ist das der Name des inputs??
      Also das ganze sollte so ausschauen:
        document.formularname.inputname.value

      Ein Feld darf nicht id heissen, weil id eine vordefinierte Variable ist ...

      Oh man, da hätt ich ja auch mal drauf kommen können. Jetzt ist die Variable auch im zweiten Script verfügbar. - DANKE! :)

      Jetzt bleibt nur noch n kleines Problemchen, auf dessen Lösung ich anscheinend ebenfalls nicht komme.. Bin wohl etwas JS-Blind heute..

      <script language="JavaScript">
      <!--
      function neu() {
      var url = window.location.search;
      url = url.substring(1,url.length);
      var url = url.replace(/id=/," ");
      document.hinzufuegen.zahl.value = url;
      document.all.bearbeitung.innerHTML = "Zimmerbearbeitung "+url;
      document.all.zimmername.innerHTML = "Zimmername: <input type="text" name="name"+url+"">";
       }

      function uebernahme() {
      var url = document.hinzufuegen.zahl.value;
      opener.document.eingabe.flaeche.value = document.hinzufuegen.name[zahl].value;

      }
      //-->
      </script>

      So schaut das jetzt aus. Bei der Funktion uebernahme() soll ja nun der Inhalt des mit neu() erstellten Formularfeldes ausgelesen werden. Der Name dieses Inputs wird ja dynamisch erstellt. Wie lese ich diesen nun aus? mit document.hinzufuegen.name[zahl].value funktioniert es leider nicht. :(

      Wäre schön, wenn mir nochmal jemand helfen könnte.

      Dankeschön! :)

      Schöne Grü+ße,
      Ben

      1. Hallo Ben

        Wie lese ich diesen nun aus? mit document.hinzufuegen.name[zahl].value funktioniert es leider nicht. :(

        Versuch's mal mit document.hinzufügen.elements["name" + zahl].value

        Grüße
        Andreas

        1. Hallo Ben

          Sorry, vertippt:

          document.hinzufuegen.elements["name" + zahl].value
                         ^^
          Grüße
          Andreas

          1. Hallo Ben

            Sorry, vertippt:

            document.hinzufuegen.elements["name" + zahl].value
                           ^^
            Grüße
            Andreas

            Hi Andreas,

            war genau, was ich brauchte. Dankeschön :)

            Viele Grüße,
            Ben

      2. Also das ganze wird schon etwas unübersichtlich mit den ganzen " und " ... warum verwendest du nicht ' ? Naja ...

        Also ... ähh ... irgendwie ...

        Also in der Variable url wird dann der eingegebene Zimmername gespeichert, oda??

        Und in der Variable ZAHL die Zimmernummer?!?

        Warum ersetzt du dann nicht einfach in dem folgendem Block URL durch ZAHL ?? Dann könntest du viel einfacher drauf zugreiffen.:
        document.all.zimmername.innerHTML = "Zimmername: <input
        type="text" name="name"+url+"">";

        MM

      3. Hi,

        document.hinzufuegen.id.value
        Was bedeuted das id?? Ist das der Name des inputs??
        Also das ganze sollte so ausschauen:
          document.formularname.inputname.value

        Ein Feld darf nicht id heissen, weil id eine vordefinierte Variable ist ...

        Oh man, da hätt ich ja auch mal drauf kommen können. Jetzt ist die Variable auch im zweiten Script verfügbar. - DANKE! :)

        Jetzt bleibt nur noch n kleines Problemchen, auf dessen Lösung ich anscheinend ebenfalls nicht komme.. Bin wohl etwas JS-Blind heute..

        <script language="JavaScript">
        <!--
        function neu() {
        var url = window.location.search;
        url = url.substring(1,url.length);
        var url = url.replace(/id=/," ");
        document.hinzufuegen.zahl.value = url;
        document.all.bearbeitung.innerHTML = "Zimmerbearbeitung "+url;
        document.all.zimmername.innerHTML = "Zimmername: <input type="text" name="name"+url+"">";
        }

        function uebernahme() {
        var url = document.hinzufuegen.zahl.value;
        opener.document.eingabe.flaeche.value = document.hinzufuegen.name[zahl].value;

        }
        //-->
        </script>

        So schaut das jetzt aus. Bei der Funktion uebernahme() soll ja nun der Inhalt des mit neu() erstellten Formularfeldes ausgelesen werden. Der Name dieses Inputs wird ja dynamisch erstellt. Wie lese ich diesen nun aus? mit document.hinzufuegen.name[zahl].value funktioniert es leider nicht. :(

        Wäre schön, wenn mir nochmal jemand helfen könnte.

        Dankeschön! :)

        Schöne Grü+ße,
        Ben

        opener.document.forms['name'].feld.value = document.forms['name2'].feld2.value;
        etc.

        oder
        http://forum.de.selfhtml.org/archiv/2002/7/16265/#m91407
        gucken
        jedenfalls hats irgendwie damit was zu tun,aber sag mal könnte man nicht einen history.back() befehl benutzen dann bleiben die angaben im formular stehen ansonsten sind sie leer wenn sie nochmals aufgerufen werden.
        gruss alain