Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Problem z instrukcją warunkową
rummer
post 24.04.2017, 18:24:29
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.08.2009

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


Witam Mam problem z kodem sprawdzającym czy tablica zawiera szukany element.

Mam takie przykładowe dane z pliku JASON:

[{"id":"10","ean":"12345"},{"id":"11","ean":"6666"}]

A to kod JS:
  1. <!DOCTYPE html>
  2. <p id="demo"></p>
  3. <p id="demo1"></p>
  4.  
  5. var obj, dbParam, xmlhttp, myObj, x, obj,txt = "",er="nie znaleziono";
  6.  
  7. dbParam = JSON.stringify(obj);
  8. xmlhttp = new XMLHttpRequest();
  9. xmlhttp.onreadystatechange = function() {
  10.  
  11. myObj = JSON.parse(this.responseText);
  12.  
  13. for (var i = 0; i < myObj.length; i++) {
  14. if (myObj[i].ean === '6666') {
  15. obj = myObj[i];
  16.  
  17. break;
  18. }
  19. }
  20.  
  21.  
  22. if(typeof obj['ean'] === "undefined"){
  23. document.getElementById("demo1").innerHTML = er;
  24. }else
  25. {
  26. document.getElementById("demo").innerHTML = obj.id;
  27.  
  28. }
  29. };
  30. xmlhttp.open("POST", "testphp.php", true);
  31. xmlhttp.send("x=" + dbParam);
  32. </body>
  33. </html>

W tym przykładzie kod działa prawidłowo, jak nie szuka się nieistniejących danych to kod nie wyświetla er. Podpowie ktoś gdzie popełniłem błąd? A może można ten kod napisać lepiej?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
trueblue
post 24.04.2017, 18:31:52
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Zmienna obj nie jest zdefiniowana przy nieznalezieniu wartości w tablicy.
Zaglądaj w konsolę przeglądarki.


--------------------
Go to the top of the page
+Quote Post
rummer
post 24.04.2017, 19:25:48
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.08.2009

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


No fajnie ,ale cały czas mi to nic nie mówi facepalmxd.gif
Go to the top of the page
+Quote Post
trueblue
post 24.04.2017, 19:29:11
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Jaką wartość ma zmienna obj sprawdzana w linii 25?


--------------------
Go to the top of the page
+Quote Post
rummer
post 24.04.2017, 20:06:06
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.08.2009

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


6666
Go to the top of the page
+Quote Post
trueblue
post 24.04.2017, 20:10:32
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


A jeśli szukasz 555?


--------------------
Go to the top of the page
+Quote Post
rummer
post 24.04.2017, 20:24:20
Post #7





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.08.2009

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


ok,chyba rozumiem do czego zmierzasz. Ale jeśli szukana wartość była by inna to powinno wykonać drugą operację. Jakąkolwiek
Go to the top of the page
+Quote Post
trueblue
post 24.04.2017, 20:27:25
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Jeszcze raz przeczytaj mój pierwszy post w tym temacie.


--------------------
Go to the top of the page
+Quote Post
rummer
post 24.04.2017, 20:31:35
Post #9





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.08.2009

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


Sorry za moją tępotę,ale nie ogarniam js'a. Staram się go nauczyć,ale z marnym skutkiem. Będę musiał poradzić sobie z tym przy pomocy php. Choć troszkę skomplikuje mi to plany. Tak czy siak dziękuję za próbę pomocy
Go to the top of the page
+Quote Post
nospor
post 24.04.2017, 22:15:01
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Skoro w js nie ogarniasz czegos takiego jak brak zdefiniowanej zmiennej, pomimo ze trueblue dzielnie o to walczyl, to i w php nie zrozumiesz co to brak zdefiniowanej zmiennej.
Ponadto blad o tym masz w konsoli js o czym rowniez ci wspomniano ale oczywiscie tez nie raczyles tam zajrzec.

Wracajac do problemu:
Zamiast

if(typeof obj['ean'] === "undefined"){

daj poprostu

if(!obj){

Zmienna obj w przypadku braku znalezienia danych, nie byla okreslona, nieprawdaz?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rummer
post 24.04.2017, 22:56:20
Post #11





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.08.2009

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


Dzięki za odpowiedź.
Ale nie musisz być nieuprzejmy.Każdy kiedyś zaczyna i musi się nauczyć.Nie każdy wchłonął JS'a z mlekiem matki.
Go to the top of the page
+Quote Post
nospor
post 25.04.2017, 08:49:18
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Napisalem, ze niezaleznie czy js czy php, to bedziesz mial ten sam problem skoro nie rozumiesz co to znaczy "niezdefiniowana" zmienna. A napisalem tak dlatego, ze chciales swoj problem rozwiazac w php skoro w js nie mogles. Jesli to dla ciebie jest bycie nieuprzejmym to twoj problem.

Dla mnie bycie nieuprzejmym to skolei:
1) Ignorowanie to co do ciebie mowia, np. powiedziano ci bys zajrzal do konsoli bledow js, czego nie uczyniles. Jakbys to zrobil, to bys dostal blad czarno na bialym
2) Moglbym sie jeszcze przyczepic o sprawdzanie linii 25 jak cie proszono, ale juz nie bede wink.gif
3) Nie przydzielanie ludziom POMOGL za to, ze pomogli. Zrobie to za ciebie tongue.gif

Takze to skolei jest dla mnie bycie nieuprzejmym. Ale to juz moj problem wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rummer
post 25.04.2017, 15:19:29
Post #13





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.08.2009

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


Jak dobrze widzę to jest dział przedszkole! Więc dział gdzie się właśnie zadaje takie pytania. Mówiąc nieuprzejmy miałem na myśli Twój sardoniczny ton. To, że ktoś się uczy i nawet jak zadaje głupie pytania to nie powód by w taki sposób odpowiadać. No chyba, że lubisz łechtać w ten sposób swoje ego. Ale to raczej nie jest rola moderatora, chyba że na tym forum macie takie standardy.
Na koniec a pro po tych deklaracji zmiennych i zarazem moje ostatnie słowa. Nie ma sensu dalej rozmawiać.
  1. $string="^#&N}i?!g5dy8 n^i(&e *s1i24ł@6u0j) s724i8ę0+ z0e& ś/5w*=i1n[i~ą.: 423}O@46bo732]je% 3b34^ę$&>dz82434ie5_+ci$2343e2 b&@r%u^324d{7n6i,7 9a0 ś7w%42i5n(4ię42 t83o@ b$^ę546d7z89:ie 3c5i4566e7s8(#z9yć.–$567 G&#e4or6{ge B(><ern5a56rd (*Sh%aw";
  2. $qqq=preg_replace('/[^A-Za-zćłśę,.\- ]/', '', $string);
Go to the top of the page
+Quote Post
nospor
post 25.04.2017, 15:21:11
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Stwierdzilem jedynie, ze skoro w js tego nie rozumiesz to nie ma sensu sie przenosic na php bo to nic nie zmieni. I zaraz potem podalem ci jak to zrobic w js. Ale widze trafilem na pana "wrazliwego".


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:03