![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 25.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam dziwny problem. Mam sobie skrypt taki skrypt: Kod $.ajax ({ type: "POST", url: "./_sys/php/check_next.php", datatype: 'json', data: { formularz: next_form, wyp: wp, dane: exp }, success : function(odp2) { if (next_form == 1) { wp = odp2; next_form = 2; } else { alert(odp2); //i tu jest problem if(odp2 == "4") { next_form = 4; } else { alert("co jest grane: " + odp2 + "?"); } } wczytaj(next_form); } }); Miejsce pojawiania się problemu zaznaczyłem komentarzem. Odpowiedź z php alert wyświetla jako 4. Próbowałem odp2 podstawić bezpośrednio do next_form ale nie wywoływało funkcji wczytaj (właściwie wywoływało ale skrypt nie traktował tego 4 jako 4). Dlatego zrobiłem w ten sposób by sprawdzić co jest w odpowiedzi i mimo iż php odpowiada "4" warunek reaguje jakby odpowiedź php była inna (alert wyświetla "co jest grane: 4?"). Poniżej dam jeszcze fragment kodu php. Kod <?php $tab = $_POST['dane']; $form = $_POST['formularz']; $wyp = $_POST['wyp']; ... $wynik = explode("^", $tab); if($wynik[2] == "1" || $wynik[2] == "3") { echo(4); } ?> Dodam, że już próbowałem echo json_encode ale problem dalej się pojawiał. Mam w skrypcie drugą funkcje która komunikuje się z php i tam wszystko działa normalnie. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%) ![]() ![]() |
To co odczytujesz z pliku php jest stringiem jeśli chcesz by była traktowana jak liczba zżutej ją na takową, nie wiem jak to zrobić w js profesjonalnie, ale mnożenie razy jeden pomaga zmienna=zmienna*1. Pozatym konstrukcje:
4=="4" 4==4 4==="4" 4===4 To nie to samo, raz są traktowane jako string raz int, lub ich porównanie jest inne, mniej więcej wytłumaczyć można że == to są takie same, a === identyczne. Ps. Tak jest w php, ale z moich obserwacji wynika, że js działa podobnie. (IMG:style_emoticons/default/haha.gif) Ps2. Używaj ' a nie " cudzysłów jest przetwarzany, a apostrof traktowany od razu jako całość więc var+' tekst' jest równoznaczny z "var tekst" jeśli nie stosujesz zmiennych to zapisuj zawsze apostrofami, a gdy masz zmienną to już decyzja należy do Ciebie jaki sposób Ci odpowiada bardziej. Ten post edytował ShadowD 25.03.2012, 23:11:14 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 17:22 |