Przenoszenie zmiennych z jednego okna do drugiego

Mam oto taki problem.

W pliku głównym jest input, w którym należy podać ścieżkę do pliku graficznego i żeby użytkownik nie musiał przepisywać jej na pamięć to postanowiłem zrobić przycisk, który uruchamia plik np. wybór_loga.php ale w popupie. Tenże plik za pomocą pętli listuje jeden z folderów i wyświetla nazwy plików graficznych. I teraz gdy użytkownik kliknie którąś z nazw to okno popupa się zamyka a w pliku "matce" w polu input pojawia się pełna ścieżka do tego pliku.

Jak to zrobić?

2 lata, 2 miesiące temu | edytowane przez: newton 1642110

  • Zabrakło Ci atrybutu id przy polu input. Polecam rozszerzenie Firebug do Firefoksa - z miejsca rozwiązuje takie problemy. Poprawiłem Twój kod żeby działał i wygląda on teraz tak:

    index.html

    <html>
    <head>
      <script type="text/javascript">
    function displayWindow(url, width, height)
    {
      window.open(url, 'Okienko', 'width=' + width + ',height=' + height + ',resizable=0,scrollbars=yes,menubar=no');
    }
      </script>
    </head>
    <body>
      <input id="sh" name="sh" value="3"/>
      <a href="#" onclick="displayWindow('edytuj.html',650,500); return false;">Test</a>
    </body>
    </html>
    

    edytuj.html

    <html>
      <head>
      <script type="text/javascript">
    function ustaw(zmienna)
    {
      window.opener.document.getElementById('sh').value = zmienna;
      window.close();
    }
      </script>
    </head>
    <body>
      <a href="#" onclick="ustaw('123'); return false;">Test</a>
    </body>
    </html>
    

  • Za pomocą samego php tego nie zrobisz. Potrzebujesz JavaScriptu. Z popupa możesz się dostać do okna, którego go otworzyła za pomocą

    windows.opener
    

    Aby 'wpisać' coś do inputa możesz napisac coś takiego:

    window.opener.document.getElementById('jakis_input').value = 'jakas_wartosc';
    

  • Zrobiłem coś takiego ale neistety nei działa.

    <?php
    session_start();
    session_register("zalogowany");
    
    if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
    ?>
    <?php require("check.php"); ?>
    </head>
    <script language="JavaScript" type="text/javascript">
    <!--
    function dodawanie() {
    window.opener.document.getElementById('relacjonuje').value = '123';
    window.close();
    }
    
    //-->
    </script>
    </head>
    <body>
    
    <a href="dodawanie()">Test</a>
    

    Pojawia się błąd 404

  • hmm niestety musi być jakiś błąd w skrypcie, bo teraz nie wywala błędu 404, ale nie wykonuje też funkcji. W tym nie zamyka okna a ten wpis na pewno jest dobrze. ma ktoś jakiś pomysł?

  • Tak więc kody obu plików prezentują się tak:

    index.html

    <html>
    <head>
    <SCRIPT>
    <!--
    function displayWindow(url, width, height) {
            var Win = window.open(url,"displayWindow",'width=' + width + ',height=' + height + ',resizable=0,scrollbars=yes,menubar=no' );
    }
    //-->
    </SCRIPT>
    </head>
    <body>
    
    <input name="sh" value="3" />
    <a href=javascript:displayWindow('edytuj.html',650,500)>Test</a>
    </body>
    </html>
    

    edytuj.html

    <html>
    <head>
    <script>
    <!--
    function dodawanie() {
    window.opener.document.getElementById('sh').value = '123';
    window.close();
    }
    
    //-->
    </script>
    </head>
    <body>
    
    <a href=javascript:window.opener.document.getElementById('sh').value = '123'>Test</a>
    </body>
    </html>
    

    Otwiera się okienko edytuj.html, klikam na link test i nic się nie dzieje. Ma ktoś jakiś pomysł?

  • Super wielkie dzięki, teraz wszystko działa jak należy ;)

Zaloguj się, aby dodać swoją odpowiedź