I am calling a javascript function from php using a print statement to print out html code, and I am passing in an integer. However, the value when it is passed in php is no
Solve it by creating a hidden text called it 'tempcart' then assing value to it with HTML or PHP, it will keep the leading zeros intact as a text string. To make sure, convert it to string if you are passing it thru PHP
HTML:
<input type='hidden' id='tempcart' value='0011110416605'>
PHP:
$itemID = '0011110416605';
$itemID = strval( $itemID );
echo "<input type='hidden' id='tempcart' value=$itemID >";
SCRIPT:
function removeFromCart() {
var itemID = document.getElementById('tempcart').value;
alert(itemID);
//do whatever...
}
This is just sample programming, you need to fit it in your program. I guess Javascript can't pass due to convertion to octal value (because of the leading zero and the lack of digits greater than 7) as @Vivid mention before.
JavaScript thinks it is an octal value (because of the leading zero and the lack of digits greater than 7
). The decimal value of octal 0011110416605
is 1226972549
. Example:
> var value = 010; //10 in octal
> console.log(value);
> 8 //is 8 in decimal
Use a string instead:
removeFromCart("0011110416605")
I found this issue and I fixed it by using parseInt:
itemID = parseInt('0011110416605',10);
You can just call with including '' quotes
Like onchange="updateLineTotal{$id,'{$po101}')";
Just include it in quotes so it will consider it as string not an integer