Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Operator porównania wariuje ;)
mskiba
post 7.09.2014, 10:02:30
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 28.04.2013

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


Nie wiem dlaczego operator porównania mi wariuje, mam kod:

  1. $(document).ready(function() {
  2. $('#catalog_parts_parts_show').submit(function() {
  3. var dostepne = $('#dostepne').val();
  4. var id_parts = $('#id_parts').val();
  5. var ilosc = $('#ilosc').val();
  6.  
  7. if(ilosc == '0' | ilosc == "")
  8. {
  9. alert("Podaj ilość");
  10. }
  11. else{
  12. if(dostepne < ilosc)
  13. {
  14. alert("Dostępnych jest tylko: "+dostepne+" sztuk");
  15. $('#ilosc').val(dostepne);
  16. }
  17. else{
  18. $.ajax({
  19. url: './scripts/basket_shop_add.php',
  20. type: 'POST',
  21. data: 'id_parts='+id_parts+'&ilosc='+ilosc,
  22. success: function() {
  23. $('#koszyk').load('./scripts/dba_catalog_parts_parts_show.php?id_parts='+id_parts+' #koszyk', function() {
  24. $('#ilosc').val(ilosc);
  25. alert("Dodano do koszyka");
  26. });
  27. }
  28. });
  29. }
  30. }
  31. return false;
  32. });
  33. });


jezeli ilosc jest puste lub jest 0, dziala ok, jest alert "podaj ilosc"

Problem pojawia sie tutaj: if(dostepne < ilosc), nie wazne jaka wartosc wpisze to i tak dodaje do bazy. Jak dostepne jest 1000 a pwpisze 1000 to i tak doda :/
Go to the top of the page
+Quote Post
markuz
post 7.09.2014, 10:42:35
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Zrób console.log na dostepne i na ilosc. Pewnie sie okaże, że mają inne typy. Warto je na początku prze-konwertować na int albo float. Np.
[JAVASCRIPT] pobierz, plaintext
  1. var dostepne = parseInt($('#dostepne').val());
  2. var id_parts = parseInt($('#id_parts').val());
  3. ilosc = parseInt($('#ilosc').val());
[JAVASCRIPT] pobierz, plaintext

I wtedy zamiast
[JAVASCRIPT] pobierz, plaintext
  1. if(ilosc == '0' | ilosc == "")
[JAVASCRIPT] pobierz, plaintext

piszesz
[JAVASCRIPT] pobierz, plaintext
  1. if(ilosc === 0)
[JAVASCRIPT] pobierz, plaintext

Poza tym pierwszy raz widzę | - pewnie chodziło Ci o operator ||


--------------------
Go to the top of the page
+Quote Post
Turson
post 7.09.2014, 10:43:13
Post #3





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Domyślnie wartości pobierane z inputów są stringami, a stringów nie można porównać jak wartości liczbowe.
http://www.w3schools.com/jsref/jsref_parseint.asp
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: 25.04.2024 - 10:33