Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> <iframe> odwołanie do wartości <div>
Raptor1
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.09.2005

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


Witam

Mam taki problem. Chciałbym pobrać wartość div'a który znajduje się wewnątrz ramki iframe. Próbowałem na różne sposoby ale widać nie udało mi się trafić na odpowiedni (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) . Poniżej fragment kodu.

  1. function getdivvalue()
  2. {
  3. alert(parent.document.getElementById("ramka_test").contentDocument.body.getElementById("aktualny_plik").value);
  4. }
  5. <iframe onload='getdivvalue();' src='http://xxx/xxx/xxx.php' id='ramka_test' name='ramka_test'></iframe>


A tu plik do którego się odwołuje ramka

  1. <?
  2. $a = file_get_contents('aaa.txt');
  3. echo "<div id='aktualny_plik' name='aktualny_plik'>$a</div>";
  4. ?>


Na razie chcę się odwołać i ewentualnie pobrać wartość $a która jest w div'ie o id aktualny_plik.

Prosiłbym o pomoc.
Go to the top of the page
+Quote Post
wlamywacz
post
Post #2





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


  1. document.getElementById('jakiesid').innerHTML
Go to the top of the page
+Quote Post
Rafal Filipek
post
Post #3





Grupa: Zarejestrowani
Postów: 274
Pomógł: 54
Dołączył: 2.05.2006
Skąd: Nadarzyn

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


Cytat(wlamywacz @ 20.02.2009, 19:25:04 ) *
  1. document.getElementById('jakiesid').innerHTML

co dokładnie ma zrobić ten kod ? i co on ma wspólnego z iframe ?
Kod
document.getElementById('iframe_id').contentWindow.document.getElementById('jakis_div_id');
Go to the top of the page
+Quote Post
Raptor1
post
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.09.2005

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


Witam

Jeśli chodzi o

  1. document.getElementById('jakiesid').innerHTML


to nie bardzo chce działać jak zrobiłem alerta to nic mi nie pokazało (oczywiście podmieniłem id (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )
Poza tym jak mi się zdaje to raczej najpierw muszę obiektowo dostać się do kodu z tej ramki ale nie bardzo mam pomysł jak.

Głównie chodzi mi o to że mam 2 strony a i b. Na stronie a mam jakiś div w którym zawarta jest wartość powiedzmy 10. Implementując ramke ze stroną a do strony b mogę wyświetlić wartość div'a w tej ramce. Ale chodzi o to że ja chce pobrać ta wartość do zmiennej w php czy w java i porównać z inną wartością. Żeby to zrobić jak sądzę muszę pobrać value danego div'a w ewentualnie innerHTML pobrać zawartość div'a w którym była by tylko ta wartość. Ale jak dostać się do kodu z ramki? (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)

Może macie jakiś pomysł ewentualnie podpowiedź.
Go to the top of the page
+Quote Post
Rafal Filipek
post
Post #5





Grupa: Zarejestrowani
Postów: 274
Pomógł: 54
Dołączył: 2.05.2006
Skąd: Nadarzyn

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


sprawdzales moj kod ?
Kod
document.getElementById('iframe_id').contentWindow.document.getElementById('jakis_div_id');
Go to the top of the page
+Quote Post
Raptor1
post
Post #6





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.09.2005

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


Sprawdziłem ale albo ja coś robię źle albo nie działa. Stawiam na to że to ja coś pokiełbasiłem więc podaje przykład jaki zrobiłem i który jest fizycznie na serwerze.

  1. <? $aktualny = file_get_contents('xxx.txt');
  2. echo "<div id='aktualny_plik' name='aktualny_plik' value='aaa'>$aktualny</div>";
  3. ?>


Teraz drugi plik na innym serwerze. W pliku tym próbowałem wywołać alertem wartość ale coś nie zatrybił (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

  1. $start = "
  2. <html>
  3. <body>
  4. <iframe id='iframe_id' src='http://soft-media.pl/czat/aktualny.php'></iframe>
  5. var test;
  6. test=document.getElementById('iframe_id').contentWindow.document.getElementById('aktualny_plik').value;
  7. alert(test);
  8. </script>
  9. </body>
  10. </html>
  11. ";
  12. echo $start;


Ps. Podałem wszystko tak jak jest u mnie ścieżki też są prawdziwe więc można sprawdzić co i jak.

Ten post edytował Raptor1 24.02.2009, 23:08:09
Go to the top of the page
+Quote Post
Rafal Filipek
post
Post #7





Grupa: Zarejestrowani
Postów: 274
Pomógł: 54
Dołączył: 2.05.2006
Skąd: Nadarzyn

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


taaa no super ale
Kod
echo "<div id='aktualny_plik' name='aktualny_plik'>$a</div>";
na 100% nie zawiera w sobie prawidlowego dokumentu html. co niby mialoby byc tutaj tym document ? musisz do iframe wpakowac dokument html a nie samego div'a.
Go to the top of the page
+Quote Post
bigZbig
post
Post #8





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Cytat(Rafal Filipek @ 25.02.2009, 00:04:55 ) *
taaa no super ale
Kod
echo "<div id='aktualny_plik' name='aktualny_plik'>$a</div>";
na 100% nie zawiera w sobie prawidlowego dokumentu html. co niby mialoby byc tutaj tym document ? musisz do iframe wpakowac dokument html a nie samego div'a.


Oj mylisz się zawiera content dokumentu xxx.txt

Natomiast test=document.getElementById('iframe_id').contentWindow.document.getElementById('aktualny_plik').value; zwróci w tym wypadku 'aaa' a nie o to chyba chodzi. Zamiasta value powinno być coś innego
Go to the top of the page
+Quote Post
Rafal Filipek
post
Post #9





Grupa: Zarejestrowani
Postów: 274
Pomógł: 54
Dołączył: 2.05.2006
Skąd: Nadarzyn

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


Ja wiem co zawiera ramka i wiem ze tak jak napisał to Raptor1 nie będzie działało. Nie odwołasz się tak do div'a nie mając dokumentu html w ramce. Btw. pisanie, że
Kod
document.getElementById('iframe_id').contentWindow.document.getElementById('aktualny_plik').value

zwórci aaa woła o pomste do nieba (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) takie coś nie ma prawa działać. Aby pobrac zawartość elementu html ( i nie chodzi o value pola input ) nalezy użyć np innerHTML. Myślałem że Raptor1 sam wykaże odrobinę inicjatywy.
Tak wię reasumując, nie mylę się.
Go to the top of the page
+Quote Post
Raptor1
post
Post #10





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.09.2005

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


Rafał masz racje, choć z tą inicjatywą to nie do końca tak. Nie każdy jest urodzonym programistą (jak widać na załączonym kodzie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ). To było tylko jedno z zestawień jakie próbowałem. Fakt nie pomyślałem że po drugiej stronie nie ma faktycznie prawidłowego dokumentu html. Z innerHTML to już wiedziałem wcześniej żeby tego użyć ale mój problem polega na tym że nie umie dostać się do elementów z ramki obojętnie czy to do value czy do tekstu między znacznikami. Zmieniłem kod na serwerze na
  1. <?
  2. $aktualny = file_get_contents('aktualny_wpis.txt');
  3. echo "<html><head></head><body><div id='aktualny_plik' name='aktualny_plik' value='aaa'>$aktualny</div></body></html>";
  4. ?>


Natomiast po drugiej stronie jest coś takiego.

  1. <?
  2.    $start = "
  3.    <html>
  4.    <head>
  5.    </head>
  6.    <body>
  7.    <iframe id='iframe_id' src='http://soft-media.pl/czat/aktualny.php'></iframe>
  8.    <script>
  9.        var test;
  10.        test=document.getElementById('iframe_id').contentWindow.document.getElementById('aktualny_plik').innerHTML;
  11.        alert(test);
  12.    </script>
  13.    </body>
  14.    </html>
  15.    ";
  16.    echo $start;    
  17. ?>


Przy tym zestawieniu nie wywołuje się alert więc to

  1. test=document.getElementById('iframe_id').contentWindow.document.getElementById('aktualny_plik').innerHTML;


zamieniłem na

  1. test=document.getElementById('iframe_id').contentWindow.document.body.innerHTML;


I wyświetliła mi się pusta ramka co oznacza że nie dostałem się do środka ( jak sądzę )
Tak czy owak nie działa tak jak by miało. Proszę o jakieś wskazówki.

Ps. Jestem początkujący w java script więc proszę o wyrozumiałość.
Go to the top of the page
+Quote Post
Rafal Filipek
post
Post #11





Grupa: Zarejestrowani
Postów: 274
Pomógł: 54
Dołączył: 2.05.2006
Skąd: Nadarzyn

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


a wstaw ten skrypt tak,
Kod
function test(){
       var test;
       test=document.getElementById('iframe_id').contentWindow.document.getElementById('aktualny_plik').innerHTML;
       alert(test);
}

i wstaw tą funkcje w onload dla iframe
Kod
<iframe id='iframe_id' src='http://soft-media.pl/czat/aktualny.php' onload="test()"></iframe>

tylko wstaw tą funkcje js przed ramką zeby na 100% była załadowana.

Ten post edytował Rafal Filipek 26.02.2009, 01:05:28
Go to the top of the page
+Quote Post
Raptor1
post
Post #12





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.09.2005

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


Hmn (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)

Wkleiłem to na żywca żeby nie było żadnych przekłamań ani literówek. po przeładowaniu dalej nic. Kod źródłowy strony po przeładowaniu wygląda tak.

  1. <head>
  2. </head>
  3. <body>
  4. function test(){
  5. var test;
  6. test=document.getElementById('iframe_id').contentWindow.document.getElementById('aktualny_plik').innerHTML;
  7. alert(test);
  8. }
  9. </script>
  10. <iframe id='iframe_id' src='http://soft-media.pl/czat/aktualny.php' onload="test()"></iframe>
  11.  
  12. </body>
  13.  
  14. </html>


Już nie wiem w sumie powinno działać a nie działa. Ten drugi serwer jest u mnie w domu na xp odpalony a dokładniej na xampp'ie. Może to jest przyczyną. Już sam nie wiem (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Go to the top of the page
+Quote Post
kyku
post
Post #13





Grupa: Zarejestrowani
Postów: 116
Pomógł: 8
Dołączył: 21.11.2008

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


Jeśli to nie problem.. zrob to za pomoca php

  1. <?php
  2. $strona = file_get_contents('http://www.strona.pl');
  3. preg_match('#<div id="Id_diva">(.*?)</div>#s', $strona, $wynik);
  4. echo $wynik;
  5. ?>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 07:09