Передача числовой переменной в jQuery .load - PullRequest
2 голосов
/ 15 февраля 2011

У меня возникла небольшая проблема со следующим:

function loadContent(id) {
     $("#featuredDiv").load("featuredDiv.php?list="+id);
     );
}

Все работает нормально при открытии URL с идентификатором 21012011, например:

javascript:loadContent(28012011)

, но когда04022011 - это идентификатор (javascript:loadContent(28012011)), кажется, что номер меняется на 1057801.

Мне нужно, чтобы число передавалось точно так же, как при чтении страницы из базы данных.У кого-нибудь есть идеи, что я делаю не так?

Большое спасибо заранее!

Ответы [ 2 ]

5 голосов
/ 15 февраля 2011

Это потому что 04022011 анализируется JavaScript как восьмеричное число .

Оберните идентификатор в кавычки всегда, и он будет работать.

3 голосов
/ 15 февраля 2011

Проблема заключается в разнице между десятичной и восьмеричной нотациями.

По историческим причинам, которые не имеют ничего общего с современными программистами, последовательность чисел, начинающаяся с 0 и не содержащая символов 8 или 9, интерпретируется как восьмеричное число . Это означает, что он рассматривается как находящийся в базе 8, а не в базе 10.

восьмеричное 04022011 равно 1057801 в десятичной записи.

Вы можете исправить это, заключив свой номер в кавычки (например, javascript:loadContent("28012011")): это приведет к тому, что оно будет интерпретировано как строка и передано непосредственно в ваш URL.

Однако Вы используете <a href="javascript:..."> ссылки. Это плохая практика. Просмотрите введение в jQuery (например, jqfundamentals.com ), чтобы увидеть оптимальные способы привязки действий к элементам и событиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...