Посылаю запрос с помощью:
$.get(....)
И результат - число, заношу в переменную
Но похожу что JS думает что то строка, а не число
И при if(num<5) - .. условие не срабатывает
П,С. не надо говорить, вдруг оно равно или больше 5
Спустя 2 минуты, 57 секунд (25.10.2011 - 21:24) Winston написал(а):
if(parseInt(num)<5)
Спустя 9 минут, 45 секунд (25.10.2011 - 21:33) wollk написал(а):
При выводе, пишет Nan
Спустя 3 минуты, 36 секунд (25.10.2011 - 21:37) killer8080 написал(а):
wollk
выведи через алерт, и посмотри что там на самом деле. Похоже нет там никакого числа.
выведи через алерт, и посмотри что там на самом деле. Похоже нет там никакого числа.
Спустя 1 минута, 12 секунд (25.10.2011 - 21:38) Winston написал(а):
Смотри
Про Nan тоже написано
Про Nan тоже написано
Спустя 3 минуты, 47 секунд (25.10.2011 - 21:42) wollk написал(а):
Пишет 3
Спустя 3 минуты, 30 секунд (25.10.2011 - 21:45) killer8080 написал(а):
Цитата (wollk @ 25.10.2011 - 21:42) |
Пишет 3 |
тогда и проблем быть не должно, даже без parseInt()
Покажи код, наверно там ошибка.
Спустя 8 минут, 21 секунда (25.10.2011 - 21:54) wollk написал(а):
В обработчике, куда посылаю запрос перед выводом стоит intval()
function num_up(num){
if(num<1){
alert("Меньше 1");
}
if(num>1 && num<5){
alert("1-4");
}
}
$.get("index.php?action=num",
{},
function(data){
num_up(data);
});
function num_up(num){
if(num<1){
alert("Меньше 1");
}
if(num>1 && num<5){
alert("1-4");
}
}
$.get("index.php?action=num",
{},
function(data){
num_up(data);
});
Спустя 3 минуты, 29 секунд (25.10.2011 - 21:57) killer8080 написал(а):
данные в каком формате? json?
Спустя 1 минута, 56 секунд (25.10.2011 - 21:59) Winston написал(а):
Здесь все нормально...
Спустя 25 секунд (25.10.2011 - 22:00) killer8080 написал(а):
Попробуй
$.get("index.php?action=num",
{},
function(data){
num_up(data[0]);
});
Спустя 51 секунда (25.10.2011 - 22:00) wollk написал(а):
Цитата (killer8080 @ 25.10.2011 - 18:57) |
данные в каком формате? json? |
без понятия в каком формате данные
Спустя 1 минута, 12 секунд (25.10.2011 - 22:02) killer8080 написал(а):
Цитата (wollk @ 25.10.2011 - 22:00) |
без понятия в каком формате данные |
ну так сделай
alert(typeof data);
Спустя 1 минута, 12 секунд (25.10.2011 - 22:03) wollk написал(а):
Ну вот стоит мне где ГЕТ написать:
alert(parseInt(data));
Получаю Nan
Формат данных - string
alert(parseInt(data));
Получаю Nan
Формат данных - string
Спустя 9 минут, 17 секунд (25.10.2011 - 22:12) killer8080 написал(а):
wollk
так делаешь?
так делаешь?
function num_up(num){
num = parseInt(num);
if(num<1){
alert("Меньше 1");
}
if(num>1 && num<5){
alert("1-4");
}
}
$.get("index.php?action=num",
{},
function(data){
num_up(data);
});
Спустя 3 минуты, 42 секунды (25.10.2011 - 22:16) wollk написал(а):
И так тоже делал
Спустя 21 минута, 49 секунд (25.10.2011 - 22:38) killer8080 написал(а):
wollk
хочешь сказать
alert(data) выводит число, а
alert(parseInt(data)) даёт NaN
Что то тут не вяжется
хочешь сказать
alert(data) выводит число, а
alert(parseInt(data)) даёт NaN
Что то тут не вяжется
Спустя 21 минута, 16 секунд (25.10.2011 - 22:59) wollk написал(а):
Да-да, именно так
Спустя 5 минут, 13 секунд (25.10.2011 - 23:04) killer8080 написал(а):
Цитата (wollk @ 25.10.2011 - 22:59) |
Да-да, именно так |
так в том то и проблема, что такого быть не может
При выводе переменной через alert, для переменной неявно вызывается метод toString()
Если в алерте видишь число, то NaN parseInt по определению выдать не может. Что то ты путаешь.
PS а браузер какой?
Спустя 2 минуты, 51 секунда (25.10.2011 - 23:07) wollk написал(а):
Хром
Спустя 45 секунд (25.10.2011 - 23:08) wollk написал(а):
Хм.. а в мазиле робит. Но так не надо(((
Спустя 4 минуты, 14 секунд (25.10.2011 - 23:12) killer8080 написал(а):
wollk
как выводятся данные в index.php?
как выводятся данные в index.php?
Спустя 5 минут, 10 секунд (25.10.2011 - 23:17) wollk написал(а):
Пример:
$num=запрос к БД;
echo intval($num);
$num=запрос к БД;
echo intval($num);
Спустя 8 минут, 24 секунды (25.10.2011 - 23:25) Winston написал(а):
Достаточно просто
echo (int)$num;
Спустя 17 секунд (25.10.2011 - 23:26) killer8080 написал(а):
попробуй добавить заголовок
header("Content-Type: text/plain");
Спустя 4 минуты, 51 секунда (25.10.2011 - 23:31) wollk написал(а):
Цитата (killer8080 @ 25.10.2011 - 20:26) |
попробуй добавить заголовокheader("Content-Type: text/plain"); |
Безтолку
Спустя 1 минута, 19 секунд (25.10.2011 - 23:32) wollk написал(а):
Цитата (Winston @ 25.10.2011 - 20:25) |
Достаточно простоecho (int)$num; |
Тоже не помогло((((
Спустя 2 минуты, 33 секунды (25.10.2011 - 23:34) killer8080 написал(а):
wollk
посмотри фаирбагом, что реально отсылает сервер.
посмотри фаирбагом, что реально отсылает сервер.
Спустя 7 минут, 23 секунды (25.10.2011 - 23:42) wollk написал(а):
5
Дело в хроме чтоли ? (((((
Дело в хроме чтоли ? (((((
Спустя 3 минуты, 32 секунды (25.10.2011 - 23:45) killer8080 написал(а):
wollk
на вкладке сеть посмотри ответ сервера.
на вкладке сеть посмотри ответ сервера.
Спустя 11 часов, 46 минут, 21 секунда (26.10.2011 - 11:32) wollk написал(а):
Цитата (killer8080 @ 25.10.2011 - 20:45) |
wollk на вкладке сеть посмотри ответ сервера. |
Date Wed, 26 Oct 2011 08:31:51 GMT
Server Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.3.3
X-Powered-By PHP/5.3.3
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma no-cache
Content-Length 68
Keep-Alive timeout=5, max=100
Connection Keep-Alive
Content-Type text/html; charset=UTF-8
Спустя 15 минут, 30 секунд (26.10.2011 - 11:47) Invis1ble написал(а):
Это Response Headers во вкладке Headers, а ты посмотри во вкладке Response
Спустя 10 минут, 8 секунд (26.10.2011 - 11:57) wollk написал(а):
Спустя 2 минуты, 24 секунды (26.10.2011 - 12:00) Invis1ble написал(а):
Мистика, господа!
Может с кодировкой что-то? Хотя хз, каким боком она тут....
Может с кодировкой что-то? Хотя хз, каким боком она тут....
Спустя 1 минута, 23 секунды (26.10.2011 - 12:01) Guest написал(а):
Ну так в Firefox работает, а в Chrom нет
Спустя 3 минуты, 15 секунд (26.10.2011 - 12:04) Invis1ble написал(а):
Как вариант - предлагаю продемонстрировать код еще раз, вместе с parseInt
Спустя 14 минут, 48 секунд (26.10.2011 - 12:19) wollk написал(а):
<script type="text/javascript">
function num_up(num){
num=parseInt(num);
if(num<1){
alert("Меньше 1");
}
if(num>1 && num<5){
alert("1-4");
}
}
$.get("index.php?action=num",
{},
function(data){
num_up(data);
});
</script>
Спустя 46 секунд (26.10.2011 - 12:20) wollk написал(а):
Разве что попробовать другим способом запрос к серверу посылать..
Или попробовать число с помощью регулярного выражения вырезать. Но с этим у меня проблемы((
Или попробовать число с помощью регулярного выражения вырезать. Но с этим у меня проблемы((
Спустя 11 минут, 36 секунд (26.10.2011 - 12:32) killer8080 написал(а):
wollk
нелепое предположение, но всё же, может файл в кодировке с BOM?
ЗЫ а в остальных браузерах всё нормально? ФФ, Опера, ИЕ, Сафари?
нелепое предположение, но всё же, может файл в кодировке с BOM?
ЗЫ а в остальных браузерах всё нормально? ФФ, Опера, ИЕ, Сафари?
Спустя 3 минуты, 39 секунд (26.10.2011 - 12:35) wollk написал(а):
В ФФ работает, даже в ИЕ работает. А вот оперы и сафари нету на компе.
Нет, файл без BOM
Нет, файл без BOM
Спустя 1 час, 2 минуты, 20 секунд (26.10.2011 - 13:38) Invis1ble написал(а):
Все же я склоняюсь к версии с боками в кодировке (или попаданием в ответ неотображаемых символов). Проверь так
function num_up(num){
alert(num.length); // что выводит и что во вкладке Response при этом?
num=parseInt(num);
if(num<1){
alert("Меньше 1");
}
if(num>1 && num<5){
alert("1-4");
}
}
Спустя 30 минут, 35 секунд (26.10.2011 - 14:08) killer8080 написал(а):
Цитата (wollk @ 26.10.2011 - 11:32) |
Date Wed, 26 Oct 2011 08:31:51 GMT Server Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.3.3 X-Powered-By PHP/5.3.3 Expires Thu, 19 Nov 1981 08:52:00 GMT Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma no-cache Content-Length 68 Keep-Alive timeout=5, max=100 Connection Keep-Alive Content-Type text/html; charset=UTF-8 |
Это заголовок аякса? Откуда там длина контента аж 68 байт?
У тебя же там один байт должен быть
Цитата |
Спустя 2 минуты, 34 секунды (26.10.2011 - 14:11) Invis1ble написал(а):
Меня это тоже смутило, но там вроде в Content-Length входят еще какие-то данные
Спустя 2 минуты, 36 секунд (26.10.2011 - 14:13) killer8080 написал(а):
Цитата (Invis1ble @ 26.10.2011 - 14:11) |
но там вроде в Content-Length входят еще какие-то даные |
Да нет не должно, может это не тот заголовок?
Спустя 1 минута, 27 секунд (26.10.2011 - 14:15) Invis1ble написал(а):
Хз, я написал уже самый простой способ проверить выше
Спустя 20 минут, 2 секунды (26.10.2011 - 14:35) wollk написал(а):
Цитата (Invis1ble @ 26.10.2011 - 10:38) |
Все же я склоняюсь к версии с боками в кодировке (или попаданием в ответ неотображаемых символов). Проверь такfunction num_up(num){ |
5 в окошке :blink:
Во вкладке 200 (П.С. 200 это норм, не обращайте внимание что больше 5)
Спустя 7 минут, 13 секунд (26.10.2011 - 14:42) Invis1ble написал(а):
Цитата |
5 в окошке |
- ну вот тебе и ответ. Похоже на BOM, только по идее с BOM 6 должно быть. Мб тупо пробелы или переводы строк.
Спустя 13 минут, 43 секунды (26.10.2011 - 14:56) wollk написал(а):
Поставил
alert(data.length);
В ГЕТ выводит 4
alert(data.length);
В ГЕТ выводит 4
Спустя 4 минуты, 25 секунд (26.10.2011 - 15:00) wollk написал(а):
хм.. там получается как я понял двоечка лишняя .. точнее если число из 3 цифр, то он пишет 5, если из 2 - пишет 4
Спустя 2 минуты, 51 секунда (26.10.2011 - 15:03) Invis1ble написал(а):
покажи php-обработчик, формирующий ответ
Спустя 40 минут, 38 секунд (26.10.2011 - 15:44) wollk написал(а):
Вот почему стоит приинклудить файл с этим содержимым, и появляются лишние символы когда я посылаю ГЕТ запрос
<?php
function limpiar($mensaje)
{
if(!is_numeric($mensaje)){
$mensaje = htmlspecialchars(stripslashes(trim($mensaje)));
$mensaje = addslashes($mensaje);
}
return $mensaje;
}?>
Спустя 8 минут, 53 секунды (26.10.2011 - 15:53) killer8080 написал(а):
wollk
покажи обработчик целиком
покажи обработчик целиком