Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS][PHP]Kolejny plik oraz kolejna funkcja
Maxie
post
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 19.10.2011

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


Witam,
otóż zaczynam swą zabawę z JavaScriptem. Celem tej "zabawy" jest zrobienie czegoś więcej, więc się za to zabrałem. Ale teraz mam problem. Zrobiłem w PHP ładnie działający menager plików. Wymyśliłem, sobie, że przy każdym pliku (czyli kolejnym "obrocie" pętli), tworzyła się jedna funkcja z numerkiem na końcu, by się nie pomieszały i każdy plik mógł być oddzielnie wyświetlony w odpowiednim divie, po najechaniu na nazwę pliku. Niestety, coś nie tak działało, postanowiłem skrócić kod by zobaczyć gdzie leży przyczyna. Skończyło się na pokazaniu nazwy, lecz problem pozostał. Problem objawia się w ten sposób, że tylko mogę "zobaczyć" ostatni plik po najechaniu na jakikolwiek.

Miejsce wyświetlenia nazwy:
  1. <tr class="view" id="view">
  2.  
  3. </tr>



Zapętlona część odpowiedzialna, za pokazywanie pliku, oraz ten trefny skrypt w JS:
  1.  
  2. if($poke==NULL){
  3. $poke = 0;}else{
  4. $poke = $poke + 1;}
  5.  
  6.  
  7.  
  8. echo "<tr onmouseover=\"Pokaz$poke()\" onmouseout=\"NPokaz$poke()\" class=\"style222\"><td> <img src=\"images/$ipk.png\"> " . $vfile . "</td><td class=\"style24\">.$img &nbsp;&nbsp; $w $mb</td><td class=\"style23\"> $qwerty </a></td></tr>";
  9.  
  10. echo"<script language=\"javascript\" type=\"text/javascript\">
  11.  
  12. function Pokaz$poke() {
  13. document.getElementById(\"view\").innerHTML = \"$vfile\";
  14. document.getElementById(\"view\").className = \"pokaz\";
  15.  
  16. }
  17.  
  18. function NPokaz$poke() {
  19. document.getElementById(\"view\").innerHTML = \"\";
  20. document.getElementById(\"view\").className = \" view\";
  21.  
  22. }
  23. </script>";
  24.  


I teraz moje pytanie, gdzie leży przyczyna?
Go to the top of the page
+Quote Post
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


W HTML możesz mieć tylko jeden element o określonym id, jeśli będziesz miał ich więcej, to metoda getElementById() wybierze ostatni taki element. Generowanie kilku różnych funkcji różniących się jedynie liczbą na końcu jest bez sensu i przeczy jednej z podstawowych zasad programowania - regule DRY (nie powtarzaj się). Tymczasem można by stworzyć tylko jedną funkcję o nazwie Pokaz, a identyfikator lub numer elementu do wyświetlenia przekazywać jako argument tej funkcji.
Go to the top of the page
+Quote Post
krowal
post
Post #3





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


Wszystko to co piszesz da się zrobić w css bez potrzeby używania js z pomocą pseudoklasy :hover. Poza tym całkowicie zgadzam się z mortus'em. Powinna być od tego jedna funkcja przyjmująca jako parametr id zmienianego wiersza/obrazka.
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: 3.10.2025 - 08:55