Проблема с Javascript - неправильная передача строки с нулем в начале - PullRequest
2 голосов
/ 20 апреля 2011

У меня странная проблема.У меня есть простая функция, чтобы открыть всплывающее окно с информацией о пин-коде (нажав на ссылку с этим пин-кодом)

Для некоторых пинов он работает нормально, но для других конвертирует в другое число.

Например, пропуск «033604» открывает http://mysite.com/pincheck.php?pin=014212

, но пропуск «023960» открывает http://mysite.com/pincheck.php?pin=023960 (что мне нужно)

Передача «032765» открывает http://mysite.com/pincheck.php?pin=013813

но прохождение '030309' открывает http://mysite.com/pincheck.php?pin=030309 (что мне нужно)

Я перепробовал кучу пинов, и все это случайно, - либо пропускает правильный штифт, либо конвертирует егона другое число

Функция:

function win_open_pin(pin) {
newwindow = window.open('pincheck.php?pin=' + '0' + pin + '' , 'popupwin', 'menubar=no,history=no,resizable=yes,scrollbars=yes,toolbar=no,width=650,height=300');
if (window.focus) {newwindow.focus()}
}

Я попытался использовать pincheck.php? pin = 0 '+ pin и попробовал pin = toString (pin) в функции - нетuse

Вызов также прост

<a href=\"javascript:win_open_pin($pin)\">$pin</a> 

Переменная $ pin в php взята из db и является строкой, я даже произнес (string) приведение на всякий случай.Кажется, это проблема js, так как у меня никогда не было таких проблем с php.

Я не вижу ни рифмы, ни причины для этого.Надеюсь, что кто-то может указать мне правильное направление, чтобы решить эту проблему.Спасибо.

Ответы [ 2 ]

3 голосов
/ 20 апреля 2011

Я думаю, что проблема с автоматическим преобразованием int.Например:

parseInt("033604", 10) //returns 33604

parseInt("033604") //returns 14212 - Octal

Измените разметку элемента привязки на следующую (обратите внимание на одинарные кавычки вокруг $ pin):

<a href=\"javascript:win_open_pin('$pin')\">$pin</a>
1 голос
/ 20 апреля 2011

DEC 013813 = OCT 032765 Javascript предполагает, что число является восьмеричным, если оно начинается с начального нуля.Добавление кавычек вокруг $ pin должно решить эту проблему для вас.

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