Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][Js] Wyświetlanie losowego tekstu.
mayu11
post
Post #1





Grupa: Zarejestrowani
Postów: 99
Pomógł: 9
Dołączył: 9.09.2008

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


Witajcie, mam 2 pliki,
1. wybiera losową treść
2. wyświetla ją

Z tym, że skrypt Js nie potrafi wyświetlić Js.


  1. function testowa_funkcja(){
  2. $id = rand(1,2);
  3.  
  4. if($id == 1){
  5. return '<script language="JavaScript" type="text/javascript"> XXX </script>';
  6. }
  7.  
  8.  
  9. if($id == 2){
  10. return '<script language="JavaScript" type="text/javascript"> XXX</script>';
  11. }
  12. }
  13.  
  14. echo testowa_funkcja();


Skrypt wczytuje zawartość pliku z funkcją i powinien wyświetlić działanie skryptu... Niestety tego nie robi.

Kod
function funckja_js() {
  http.open("GET", "plik_z_funkcja.php", true);
  http.onreadystatechange=function() {
    if(http.readyState == 4) {
      document.getElementById('foo').innerHTML = http.responseText;
    }
  }
  http.send(null);
}


Oczywiście mam wszystko inne co potrzeba.., gdy return jest zwykłym tekstem, a nie skryptem wszystko wyświetla się poprawnie... Czy wiecie może jak to zrobić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
kipero
post
Post #2





Grupa: Zarejestrowani
Postów: 233
Pomógł: 50
Dołączył: 28.10.2006
Skąd: Radom

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


Żeby JavaScript się wykonał musisz "wyłowić" go z odpowiedzi AJAXa i przepuścić prze funkcję eval().
Go to the top of the page
+Quote Post
mayu11
post
Post #3





Grupa: Zarejestrowani
Postów: 99
Pomógł: 9
Dołączył: 9.09.2008

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


Mniej więcej załapałem... Zmieniłem na:

Kod
document.getElementById('foo').innerHTML = eval(http.responseText);


Ale teraz wyświetla się undefined.
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(mayu11 @ 23.03.2010, 15:26:35 ) *
Mniej więcej załapałem... Zmieniłem na:

Kod
document.getElementById('foo').innerHTML = eval(http.responseText);


Ale teraz wyświetla się undefined.

Zastanów się co wysłałeś w odpowiedzi i co przeszło przez eval (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mayu11
post
Post #5





Grupa: Zarejestrowani
Postów: 99
Pomógł: 9
Dołączył: 9.09.2008

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


Szczerze to dopiero zacząłem w Js, nie mam pojęcia..

Może coś w stylu docyment.write.eval? (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
kipero
post
Post #6





Grupa: Zarejestrowani
Postów: 233
Pomógł: 50
Dołączył: 28.10.2006
Skąd: Radom

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


Musisz wyciągnąć ze zwracanej wartości wszystko co będzie pomiędzy <script></script> używając wyrażeń regularnych i przepuścić to przez funkcję eval.
Go to the top of the page
+Quote Post
mayu11
post
Post #7





Grupa: Zarejestrowani
Postów: 99
Pomógł: 9
Dołączył: 9.09.2008

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


A jeśli jest <script src="XX"> (IMG:style_emoticons/default/questionmark.gif) ;/ W ogóle nie mam pojęcia jak to zrobić... W kodzie już mi się nawet zaczyna wyświetlać, ale na stronie nie.
Go to the top of the page
+Quote Post
Fifi209
post
Post #8





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(kipero @ 23.03.2010, 18:49:09 ) *
Musisz wyciągnąć ze zwracanej wartości wszystko co będzie pomiędzy <script></script> używając wyrażeń regularnych i przepuścić to przez funkcję eval.

Nie możesz podawać do skryptu czegoś takiego:
Kod
<script language="JavaScript" type="text/javascript"> XXX </script>

Przecież to zawiera kod i znaczniki javascript a Ty potrzebujesz sam kod Javascript
Go to the top of the page
+Quote Post
mayu11
post
Post #9





Grupa: Zarejestrowani
Postów: 99
Pomógł: 9
Dołączył: 9.09.2008

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


Z tym, że to nie ja ustalam warunki, muszę zwyczajnie wkleić ten kod w niezmienianej formie.
Go to the top of the page
+Quote Post
Fifi209
post
Post #10





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(kipero @ 23.03.2010, 18:49:09 ) *
Musisz wyciągnąć ze zwracanej wartości wszystko co będzie pomiędzy <script></script> używając wyrażeń regularnych i przepuścić to przez funkcję eval.



Cytat(mayu11 @ 23.03.2010, 21:32:27 ) *
Z tym, że to nie ja ustalam warunki, muszę zwyczajnie wkleić ten kod w niezmienianej formie.


Przecież kolega napisał odpowiedź.
Go to the top of the page
+Quote Post
mayu11
post
Post #11





Grupa: Zarejestrowani
Postów: 99
Pomógł: 9
Dołączył: 9.09.2008

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


Ok, czy możecie powiedzieć mi jak zrobić to krok po kroku? Ja już z tym wytrzymać nie mogę, wypróbowałem ze 100 wersji skryptu, ale Js w ogóle nie znam. ;/
Go to the top of the page
+Quote Post
Fifi209
post
Post #12





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Google -> javascript regular expression
Go to the top of the page
+Quote Post
mayu11
post
Post #13





Grupa: Zarejestrowani
Postów: 99
Pomógł: 9
Dołączył: 9.09.2008

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


Widziałem to gdy szukałem odpowiedzi, ale ja serio nie rozumiem Js... Nie mam pojęcia co się z czym łączy.
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: 22.08.2025 - 15:54