Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [js]Pop-up zwracający wartość
R4D3K
post 6.02.2010, 01:58:41
Post #1





Grupa: Zarejestrowani
Postów: 144
Pomógł: 12
Dołączył: 16.03.2007

Ostrzeżenie: (0%)
-----


Witam wszystkich ! Mam taki problem, który jak podjrzewam jest banalny, jednak moja słaba znajomość jquery i js nie pozwala go rozwiązać.

Wprowadzenie:
Mam formularz A, w którym znajduje się pole textarea. W formularzu jest link z graficznym tłem, który otwiera nowe okno z emotkami do donania:
  1. .....
  2. <label class="error" style="color:#7F7772;">O sobie:</label>
  3. <label class="error" >
  4. <a href="java script:dodaj(1,'osobie')" class="inputB" title="Pogrubienie">B</a>
  5. <a href="java script:dodaj(2,'osobie')" class="inputI" title="Pochylenie">i</a>
  6. <a href="java script:dodaj(3,'osobie')" class="inputU" title="Podkreślenie">U</a>
  7. <a href="java script:dodaj(4,'osobie')" class="inputN" title="Link">url</a>
  8. <a href="java script:emo('#osobie');" class="inputN" title="emotoikonki"><img src="./img/emo/biggrin.gif" alt="emotoikonki"/></a>
  9. </label>
  10. <textarea name="osobie" id="osobie" ><?=($dane_r[0]['osobie']);?></textarea>


funkcja emo, która wyświetla nowe okno:
Kod
function emo(x) {
  $(document).ready(function() {
   var pos=$(x).offset();
   var px=pos.top-440;
   var py=pos.left-240;
   var win=window.open('./template/emo.php','EMOTOIKONKI','toolbar=no,menubar=no,location=no,personalbar=no,scrollbars=no,directories=n
o,status=no, resizable=no,width=200,height=185,top='+px+',left='+py);

  })
}


plik emo.php:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl-PL">
  3. <head>
  4. <style type="text/css">
  5. img {margin:2px;border:0;}
  6. </style>
  7. <script type="text/javascript" >
  8. function returnData(x) {
  9. window.opener.GetElementById('osobie').value+=x;
  10. this.close();
  11. }
  12. </script>
  13. </head>
  14. <body>
  15. <a href="java script:returnData('emotka');" title="" ><img src="../img/emo/usmiech.gif" alt="" /></a>
  16. </body>
  17. </html>


PROBLEM !
chce uzyskać efekt taki, że po kliknięciu w emotkę pop up zostanie zamknięty a w textarea, zostanie na koncu dodany BB code tej emotki. I nie wiem jak to zrobić. Czytałem, że należy użyć window.opener - czyli referencji to obiektu rodzica, który otworzył to okno, więc jej użyłem najpierw w funkcji emo ale bezskutecznie. Dlatego stworzyłem funkcje rertunDAta pop-upa czyli:
Kod
             function returnData(x) {
                 window.opener.GetElementById('osobie').value+=x;
                 this.close();
             }

jednak po kliknięciu w emotkę okno się nie zamyka i nic nie zostaje dopisane do pola textarea ;(
Bardzo proszę o na kierunkowanie mnie co muszę zrobić, żeby poproastu zwrócić wartość z pop-upa do głównego okna i czy to można jakoś zrobić w funkcji emo questionmark.gif


Ten post edytował R4D3K 6.02.2010, 02:01:36
Go to the top of the page
+Quote Post
lord_t
post 6.02.2010, 11:22:05
Post #2





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

Ostrzeżenie: (0%)
-----


getElementById piszemy wyłącznie z małej litery o ile się nie mylę. Zobacz w konsoli błędów (menu narzędzia w FF) lub firebugu czy wypluwa jakiś błąd.

Ten post edytował lord_t 6.02.2010, 11:22:27


--------------------
Go to the top of the page
+Quote Post
R4D3K
post 6.02.2010, 12:05:57
Post #3





Grupa: Zarejestrowani
Postów: 144
Pomógł: 12
Dołączył: 16.03.2007

Ostrzeżenie: (0%)
-----


Cytat
getElementById piszemy wyłącznie z małej litery

I działa a siedziałem nad tym tyle tongue.gif
A tak z innej beczki jeśli można w funkcji emo przekazuje argumentem id pola do którego mają być wstawiane emotki, czy da się tą wartość jakoś przesłać do nowego okna za pomocą javascriptu ? tak żeby funkcja returnData, oprócz zwracanej wartości wiedziała jeszcze gdzie element wstawić ?
Go to the top of the page
+Quote Post
lord_t
post 7.02.2010, 15:26:03
Post #4





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

Ostrzeżenie: (0%)
-----


open() zwraca Ci uchwyt do stworzonego okna. Możesz skorzystać z niego - ustawić sobie zmienną: uchwyt.window.zmienna='twojeid'. Zaś w funkcji returnData(x) zamiast id wpisac window.zmienna.

___
pisane z palca


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 17.06.2024 - 08:52