C.F.: PHP, JavaScript: Was bedeutet dieser Code?

Guten Abend,

ich habe heute die ersten nervigen Aufgaben bekommen. Habe ja bei Chris und Tom² schon eine Menge gelernt, aber nun soll ich bis Montag eine Doku schreiben und weiß nicht, was und warum die das gemacht haben:

if (isset($_POST['btn']['confirm']) and checkid('forms'.'0aef3219cfd908cc'))
  {
    echo
    "<script type="text/javascript">\n".
    "  if(opener.window && !opener.window.closed)\n".
    "  {\n".
    "     opener.window.location.href=opener.window.location.href;\n".
    "     opener.window.focus();\n".
    "  }\n".
    "  self.close();\n".
    "</script>\n";

exit;
  }
  else
  ...

Was hat das für einen Sinn, einer Variablen ihren Wert wieder zuzuweisen?

Liebe Grüße

C.F.

  1. wahrscheinlich ein anderer Weg für opener.window.location.reload()
    welche Vorteile (wenn überhaupt) dieser Weg hat kann ich dir nicht beantworten.
    gruss
       albert

    1. Hello Tine,

      wahrscheinlich ein anderer Weg für opener.window.location.reload()
      welche Vorteile (wenn überhaupt) dieser Weg hat kann ich dir nicht beantworten.

      überleg doch vielleicht mal, wie das Stück Code entsteht, dass Du da gepostet hast.
      Speziell die Zeile:

      "     opener.window.location.href=opener.window.location.href;\n".

      Könnte doch an einer anderen Stelle noch ganz anders aussehen, oder?

      $_line[] = 'opener.window.location.href='.get_next_location(.....).";\n";

      Erinnere Dich bitte auch, was Du letzte Woche gelernt hast ;-))

      Schönes Wochenende wünsche ich Dir, und lass die Hausaufgaben bitte nicht alle vom Forum machen.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Guten Morgen,

        wahrscheinlich ein anderer Weg für opener.window.location.reload()

        Ja, das habe ich jetzt einfach mal ausprobiert, was da passiert. War aber gar nicht so einfach, sich durch diese ganzen Javascript-Sachen durchzuwühlen. Die Erklärungen in selfhtml sind ja ganz gut, aber ich finde sie immer nicht. Das Suchsystem für die Javascript-Sachen ist echt besch....
        Wenn man nicht weiß, was man suchen soll, findet man auch nix.

        überleg doch vielleicht mal, wie das Stück Code entsteht, dass Du da gepostet hast.

        Ja, das habe ich jetzt auch verstanden. Die ganze Seite wird ja von eurer Engine generiert.

        Speziell die Zeile:

        "     opener.window.location.href=opener.window.location.href;\n".

        Könnte doch an einer anderen Stelle noch ganz anders aussehen, oder?

        $_line[] = 'opener.window.location.href='.get_next_location(.....).";\n";

        Erinnere Dich bitte auch, was Du letzte Woche gelernt hast ;-))

        *rarara*
        Da habe ich vielleicht fleißig mitgeschrieben?!

        Aber verrat mir doch bitte mal, wieso Ihr das nicht mit einer Umleitung über so einen header(Location) gemacht habt? Da würde man dann doch gar kein JavaScript benötigen?!?

        Schönes Wochenende wünsche ich Dir, und lass die Hausaufgaben bitte nicht alle vom Forum machen.

        Hast mich zwar erwischt, aber ich habe eben diese Fragen. Und irgendwann muss ich die Lösungen doch auch mal selber herausfinden, auch mit dem Forum, denn das würde mir ja auch zur Verfügung stehen, wenn ich mal einen Jon bekomme, oder? Mögt Ihr mich dann nicht mehr?

        Harzliche Grüße aus http://www.annerschbarrich.de

        Selber.
        Mein Papa holt mich gleich ab zu den 'Fischköppen'. Denk dran, dass ich Montag frei habe. Muss ich drüben abschließen? Nadine hat mich nämlich reingelassen. Macht nix, ich frag _sie_.

        Liebe Grüße

        C.F.

  2. Hallo C.F.,

    Was hat das für einen Sinn, einer Variablen ihren Wert wieder zuzuweisen?

    Erklärungsmöglichkeit 1: Mal angenommen, die Seite im Opener würde per POST aufgerufen, dann hätte ein .reload() zur Folge, dass der Browser nachfragt, ob man die Seite wirklich neu laden will und würde dann die POST-Daten wieder mitsenden. Wenn man dagegen .href neu zuweist, dann wird die nächste Anfrage ohne Bestätigungsmeldung per GET ausgeführt.

    Erklärungsmöglichkeit 2: Bei .reload() könnte es sein, dass alle Graphiken neu geladen werden, was erhöhten Traffic und erhöhte Wartezeit zur Folge hat. Wenn man dagegen den URI der Seite nochmal zuweist, wird nur die Seite nochmal neu geladen.

    Viele Grüße,
    Christian