Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Js] Wyświetlanie losowego tekstu.
Forum PHP.pl > Forum > PHP
mayu11
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ć?
kipero
Żeby JavaScript się wykonał musisz "wyłowić" go z odpowiedzi AJAXa i przepuścić prze funkcję eval().
mayu11
Mniej więcej załapałem... Zmieniłem na:

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


Ale teraz wyświetla się undefined.
Fifi209
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 smile.gif
mayu11
Szczerze to dopiero zacząłem w Js, nie mam pojęcia..

Może coś w stylu docyment.write.eval? tongue.gif
kipero
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.
mayu11
A jeśli jest <script src="XX"> 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.
Fifi209
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
mayu11
Z tym, że to nie ja ustalam warunki, muszę zwyczajnie wkleić ten kod w niezmienianej formie.
Fifi209
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ź.
mayu11
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. ;/
Fifi209
Google -> javascript regular expression
mayu11
Widziałem to gdy szukałem odpowiedzi, ale ja serio nie rozumiem Js... Nie mam pojęcia co się z czym łączy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.