• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja JS czasem pokazuje elementy na stronie a czasem nie

0 głosów
254 wizyt
pytanie zadane 21 sierpnia 2023 w JavaScript przez Reapel Początkujący (320 p.)
zmienione kategorie 21 sierpnia 2023 przez Reapel

Cześć, mam taki oto problem. Mam dodane urzadzenia do bazy danych wraz z ich lokalizacjami wirtualnymi. No i mam problem taki że gdy próbuje wywołać funkcje zmiany widoku to lokalizacji to cala strona się crashuje. W php jakims depeściakiem to nie jestem a raczej dopiero go poznaje. Wydaje mi się że mam jakiś problem składniowy z którego nie zdaję sobie sprawy. Czy mógłby zerknać na ten kodzik jakis kocur php'a? Z góry dziękie :D Poniżej kodzik i link do serwera.(trzeba sie bedzie zalogowac admin:admin). Gdy kliknie się na zmianę lokalizacji to przeciąza serwer.

Aplikacja: http://way.buildin.site/ermos_cloud_test/zalogowany.php

 

// Pobieranie lokalizacji dodanych przez uzytkownika

$sql = "SELECT DISTINCT lokalizacja FROM Urzadzenia WHERE id_uzytkownika = $id";


$result = $conn->query($sql);
$lokalizacjeDiv = "<div id='rooms'><div class='room' onclick='room_content()' ><img style='width:40px;height:40px;' src='icons/rooms/fav_col.png' ></div>";
$devlocation ="<div class='devicesContainer'>";
if ($result->num_rows > 0) {
    // Wyświetlenie lokalizacji urządzeń
    while ($rowl = $result->fetch_assoc()) 
    {
        $devlocation .= "<div class='" . $rowl['lokalizacja'] . " devhide'  >";
        $lokalizacjeDiv .= '<div class="room" onclick="room_content()" name="'.$rowl["lokalizacja"].'" ><img style="width:40px;height:40px;" src="icons/rooms/'.$rowl["lokalizacja"].'_col.png" ></div>';
        
        $sqldev = "SELECT nazwa_urzadzenia, typ, id_urzadzenia FROM Urzadzenia WHERE id_uzytkownika = $id ";
$wynik = $conn->query($sqldev);
        while ($row = $wynik->fetch_assoc()) {

    $devlocation .= "<div  onclick='send_message()'  id='".$row['id_urzadzenia']."' name='".$row['id_urzadzenia']."'  class='device' >".$row['nazwa_urzadzenia']."<div class='status' ></div></div>";
 


}
$devlocation.="</div>";
    }
       
    
} 
$lokalizacjeDiv .= "</div>";
$devlocation.="</div>";

 

komentarz 21 sierpnia 2023 przez wizarddos Nałogowiec (28,010 p.)

$sql = "SELECT DISTINCT lokalizacja FROM Urzadzenia WHERE id_uzytkownika = $id";

Skąd się bierze id?

Nie masz może w pliku error.log/ na stronie żadnych błędów?

komentarz 21 sierpnia 2023 przez Reapel Początkujący (320 p.)
$id jest implementowane wczesniej ze zmiennej sesyjnej i to normalnie działało natomiast problem pojawił się w tej wewnętrzej pętli tak jakbym w zły sposób operował na cudzysłowiach. samo zczytywanie danych o uzytkowniku działa poprawnie tylko problem jest tak jakby z łączeniem tego jako <div>
komentarz 21 sierpnia 2023 przez Reapel Początkujący (320 p.)
przeniesione 21 sierpnia 2023 przez Comandeer

Podszedłem do tego tematu troszeczke inaczej i zamiast tworzyć divy o nazwie pomieszczeń dodaje nazwe pomieszczenia jako klase do urzadzenia. Pojawił mi się natomiast problem z JS, że czasem się pojawiają te urzadzenia a czasem nie. Nie mam pojęcia od czego to zależy. Poniżej podsyłam link do strony(l:admin h:admin na któej zobaczycie o co konkretnie chodzi oraz skrypt js funkcji i budowę divów dla urzadzeń.

 

http://way.buildin.site/ermos_cloud_test/test.php

 

 function show_room(){
        const room = event.target;
  const location = room.getAttribute('name');
    
            var show = document.getElementsByClassName('device '+location);
for (var i=0;i<show.length;i+=1){
  show[i].style.display = 'flex';
}
    }
    
     function room_content() {
        
   
    
    var hide = document.getElementsByClassName('device');
for (var i=0;i<hide.length;i+=1){
  hide[i].style.display = 'none';
}
     
show_room();

     }
    
<div id='devicesContainer'>
<div  onclick='send_message()'  id=1 name=1  class='device livingroom' >R1<div class='status' ></div></div>
<div  onclick='send_message()'  id=2 name=2  class='device livingroom' >Sensor<div class='status' ></div></div>
<div  onclick='send_message()'  id=4 name=4  class='device bedroom' >LED<div class='status' ></div></div>
<div  onclick='send_message()'  id=6 name=6  class='device livingroom' >LED<div class='status' ></div></div>
<div  onclick='send_message()'  id=7 name=7  class='device kitchen' >Oświetlenie<div class='status' ></div></div>
<div  onclick='send_message()'  id=8 name=8  class='device livingroom' >Ogrzewanie<div class='status' ></div></div>
<div  onclick='send_message()'  id=9 name=9  class='device kitchen' >Ogrzewanie<div class='status' ></div></div>
<div  onclick='send_message()'  id=10 name=10  class='device hall' >LED<div class='status' ></div></div>
<div  onclick='send_message()'  id=11 name=11  class='device room' >Kinkiet<div class='status' ></div></div>
<div  onclick='send_message()'  id=14 name=14  class='device bedroom' >Temperatura<div class='status' ></div></div>
<div  onclick='send_message()'  id=16 name=16  class='device kitchen' >Audio<div class='status' ></div></div>
<div  onclick='send_message()'  id=17 name=17  class='device garden' >Ogrod<div class='status' ></div></div>
</div>
    

 

komentarz 21 sierpnia 2023 przez Reapel Początkujący (320 p.)
dobra do zamkniecia, zapomnialem ze jezeli kliknę na ikonę która jest wewnątrz tego diva do funkcja js pobierze dane o tym parametrze a nie o bloczku.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 191 wizyt
pytanie zadane 19 października 2015 w JavaScript przez Shiro Stary wyjadacz (10,300 p.)
0 głosów
2 odpowiedzi 344 wizyt
pytanie zadane 7 lutego 2018 w JavaScript przez Dorian Bajorek Dyskutant (7,920 p.)
0 głosów
2 odpowiedzi 278 wizyt

93,631 zapytań

142,556 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...