Я вызываю функцию javascript из php, используя инструкцию print, чтобы распечатать html-код, и я передаю целое число. Однако значение, когда оно передается в php, не соответствует числу, которое получает функция javascript, и я не знаю, почему.
Вот PHP, который вызывает функцию javascript:
$upc = $items[$i]->GetUPC(); print "upc: " . $upc . "<br/>"; $delete = "<a href='#' onclick='removeFromCart(". $upc .")' ><img src='".$redx."' height='17' width='17' /></a>";
Оператор печати печатает значение: 0011110416605
И на странице, используя источник просмотра, вот тег для этого:
<a href='#' onclick='removeFromCart(0011110416605)' >
Здесь вызывается функция javascript:
function removeFromCart(itemID){ var option = document.getElementById("select_cart"); var selected = option.options[option.selectedIndex].value; alert(itemID); loadCart(itemID,selected,"","remove"); }
В поле предупреждения выводится номер: 1226972549
Я мог понять, удалил ли он 0, но этот номер совершенно другой. Кто-нибудь знает, почему это может быть?
JavaScript считает, что это восьмеричное значение (из-за начального нуля и отсутствия цифр больше 7
). Десятичное значение восьмеричного 0011110416605
составляет 1226972549
. Пример:
> var value = 010; //10 in octal > console.log(value); > 8 //is 8 in decimal
Вместо этого используйте строку:
removeFromCart("0011110416605")