tox: Vor Submit Variablen an Opener übergeben?

Guten Morgen,

folgende Codezeile lädt mein Formular im Openerfenster neu:

opener.document.add.submit();

Das klappt wunderbar, aber der Grund warum ich aus einem Popup einen Sumbit ausführen möchte ist ja, dass neue Variablen erzeugt wurden.

Ist es möglich dem Formular "add" vor dem Submit weitere Variablen hinzuzufügen? Wenn ja, wie?

Danke und Gruss

  1. Hallo tox,

    opener.document.add.submit();

    Ist es möglich dem Formular "add" vor dem Submit weitere Variablen hinzuzufügen?

    Du kannst dem Formular neue Elemente hinzufügen oder den Inhalt/Value bestehender austauschen.

    Wenn ja, wie?

    opener.document.add.<elementname>.<eigenschaft> = "neuerWert";

    Zum nachlesen...

    Mit freundlichem Gruß
    Micha

    --
    LeagueEditor JavaScript kostenlose Ligaverwaltung || richtig Messen will gelernt sein
    1. Hallo Micha,

      danke Dir, aber irgendwas mache ich noch falsch:

      opener.document.add.bild.value="<?php echo $bild; ?>".submit();

      Ich habe es so verstanden:

      <elementname>

      Ist meine Variable aus PHP, die ich an mein Form übergeben möchte.

      <eigenschaft>

      Ist das was im Form dann mit der folgenden Angabe gemacht werden soll.

      Geht aber nicht. Was mache ich falsch?

      Gruss

      1. Hallo tox,

        danke Dir, aber irgendwas mache ich noch falsch:

        Ja, Du machst zuviel in einer Zeile. Jede Eigenschaft und/oder Funktion musst Du getrennt vollziehen. Wichtig ist dabei auch, das Du sie auf die richtigen Elemente anwendest. Ein Textfeld kann sich nicht selbst verschicken :-)

        So möchtest Du dem Input-Feld (Vermute ich mal) den Bildnamen übergeben und danach das Formular absenden:

          
        opener.document.add.bild.value="<?php echo $bild; ?>";  
        opener.document.add.submit();
        

        <elementname>
        Ist meine Variable aus PHP, die ich an mein Form übergeben möchte.

        Nein, PHP spielt hier keine Rolle. elementname ist der Name, dem Du zB der Textarea oder einem Input-Feld oder einm Button oder dergleichen gegeben hast.

        <eigenschaft>
        Ist das was im Form dann mit der folgenden Angabe gemacht werden soll.

        Ist zum Beispiel das value-Attribut eines einfachen Eingabefeldes. Kann aber auch die Größe der Textarea sein usw.

        Mit freundlichem Gruß
        Micha

        --
        LeagueEditor JavaScript kostenlose Ligaverwaltung || richtig Messen will gelernt sein
        1. opener.document.add.bild.value="<?php echo $bild; ?>";
          opener.document.add.submit();

          Okay, habs verstanden. Aber jetzt haut er mir einen
           "opener.document.add.bild has no properties" Fehlermeldung raus.

          Was bedeutet das?

          1. Hallo tox,

            Okay, habs verstanden. Aber jetzt haut er mir einen
            "opener.document.add.bild has no properties" Fehlermeldung raus.

            Was bedeutet das?

            Das es kein Element gibt, welches diesen Namen hat. Wie sieht Dein Formular denn aus?

            Mit freundlichem Gruß
            Micha

            --
            LeagueEditor JavaScript kostenlose Ligaverwaltung || richtig Messen will gelernt sein
            1. Aha, das bedeutet dass sich diese Art von Übergabe nur auf ein Formular bezieht. Es ist tatsächlich kein Feld mit diesem Namen definiert. Mein Fehler.

              Kann man denn einfach so eine Variable übergeben, damit diese von der dem Formular folgenden PHP Seite mitverarbeitet werden kann?

              Vielen Dank schon mal

              1. Hallo tox,

                Kann man denn einfach so eine Variable übergeben, damit diese von der dem Formular folgenden PHP Seite mitverarbeitet werden kann?

                Mal angenommen Du hängst Deine Variabe an das action Attribut des Formulares:

                <form name="fomrular" action="./index.php?var=value" method="submit">...</form>

                dann kannst Du in der Seite, die das Formular auswertet doch per $_GET['var'] auf diese Variable und dessen Inhalt zugreifen.

                Das musst also mit JavaScript aus dem PopUp heraus die Zieladresse manipulieren und Deinen Parameter anhängen - ungetestet:

                  
                opener.document.add.action += "?var=value"; //Hier Dein PHP-Kram  
                opener.document.add.submit();  
                
                

                Vielen Dank schon mal

                Keine Ursache ;-)

                Mit freundlichem Gruß
                Micha

                --
                LeagueEditor JavaScript kostenlose Ligaverwaltung || richtig Messen will gelernt sein
                1. Hallo,

                  <form name="fomrular" action="./index.php?var=value" method="submit">...</form>

                  hmmm, method="[post|get]"  muss es natürlich heißen - sry.

                  Mit freundlichem Gruß
                  Micha

                  --
                  LeagueEditor JavaScript kostenlose Ligaverwaltung || richtig Messen will gelernt sein
                  1. hmmm, method="[post|get]"  muss es natürlich heißen - sry.

                    Okay, das wär nicht das Prob. Aber ich verzweifel an meiner Variablenübergabe, obwohl ich so etwas ähnliches schon mal gemacht habe:

                    document.add.action+="?bild=<?php echo $bild; ?>";

                    Geht aber auch nicht (document.add has no property) und so:

                    opener.document.add.action+="?bild=<?php echo $bild; ?>";
                    opener.document.add.submit();

                    Erzeugt er zwar keinen Javascriptfehler, aber es kommt auch nichts im meinem Opener an.

                    Warum?

                    1. Hallo tox,

                      Warum?

                      habs gerade mal probiert. Wenn ich im Popup noch die Adresse auslesen lasse, stimmt sie. Der Parameter ist also rangehangen. Beim senden vergisst er ihn aber. Dann bleibt Dir doch nichts anderes übrig, als es in ein Formularfeld zu schreiben.

                      Mit freundlichem Gruß
                      Micha

                      --
                      LeagueEditor JavaScript kostenlose Ligaverwaltung || richtig Messen will gelernt sein
                      1. Hallo Micha,

                        habs gerade mal probiert. Wenn ich im Popup noch die Adresse auslesen lasse, stimmt sie. Der Parameter ist also rangehangen. Beim senden vergisst er ihn aber. Dann bleibt Dir doch nichts anderes übrig, als es in ein Formularfeld zu schreiben.

                        Du hast recht, mit Hidden ist die einzige Möglichkeit das Ganze in dieser Art zum Fliegen zu bringen. Und der Validator hat auch nichts dagegen, wenn Felder die nicht benutzt werden mit value="" drin stehen.

                        Vielen Dank für Deine Geduld und Hilfe

                        Gruss