Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> onchange i skrypt w innym pliku
clansman5
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 23.09.2006

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


Potrzebuje wygenerowac skrypt JS za pomoca php i wykonac go w zdarzeniu onchange. Przeprowadzam proste proby i nawet najprostszy kod nie chce mi dzialac:

  1. <table cellspacing="2">
  2.  
  3. <script id="skrypt" type="text/javascript" src=""></script>
  4.  
  5. <tr><td>Katalog:</td></tr>
  6. <tr><td>
  7. <select id="dir_sel" name="katalog" onchange="document.getElementById('skrypt').src='makejs.php';">
  8. <option value="kat1">katalog1</option>
  9. <option value="kat2">katalog2</option>
  10. </select>
  11. </td></tr>


A oto makejs.php

  1. window.alert('hello from makejs.php');


Dlaczego to nie dziala? Jezeli na sztywno w <script id="skrypt" type="text/javascript" src=""> w src wpisze makejs.php to dziala. Za pomoca zdarzenia onchange ANI RAZU nie udalo mi sie wywolac skryptu z pliku makejs.php.

Ten post edytował clansman5 25.12.2006, 12:15:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zajec
post
Post #2





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

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


Po pierwsze, zastanawiam się, czy src nie jest czasarmi atrybutem read only?

Po drugie, zmieniasz src elementu, przez który parser przegladarki już przeszedł. Więc zmiana src chyba nie spowoduje ponownego wykonania dokumentu, który się znajduje w ładowanym przez src pliku.

Jakbym to rozwiązał:

W onchange umieszczasz skrypt JS, który:
1) tworzy nowy element <script> (document.createElement)
2) ustawia temu elementowi atrybut src (na makejs.php)
3) osadza stworzony element w body (appendChild)


Jeśli i to by nie zadziałało, to spróbuj jeszcze kod z makejs.php umieścić w funkcji, którą wywyołasz także w onchange. Na przykład:

Kod
function testowa()
alert('hello from makejs.php');
}
Kod
onchange="..... testowa();"


Ten post edytował Zajec 25.12.2006, 18:25:40
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 09:40