我有一个 MySQL表,它正在网页上显示。我有一个按钮,每行使用行中的值来切换函数:
<button id="loginButtonSmall" onclick="resumeApplication(<?php echo $row['newApplicationNumb']; ?>)">
Pickup where we left off
</button>
$row['newApplicationNumb']
的值会在页面上正确显示。
此处$row['newApplicationNumb']
= 359786918929342363。
然后我有:
function resumeApplication(applicationID) {
var newApplicationNumb = applicationID;
alert(newApplicationNumb);
}
警报返回:359786918929342340。
所以每次将最后两位数从63改为40 ......
我环顾四周,真的不明白它是如何改变这样的价值......
非常感谢任何线索!
答案 0 :(得分:5)
看到这个答案: What is JavaScript's highest integer value that a number can go to without losing precision?
简短的回答是你的号码太大而且可靠性丢失了。我会改用字符串值。
答案 1 :(得分:2)
javascript中的最高整数值是+/- 9007199254740991。如果您确实需要存储更高的值,请使用库BigInteger
。
第二个选项不是将参数作为整数传递,而是作为字符串传递。 替换这个:
<button id="loginButtonSmall" onclick="resumeApplication(<?php echo $row['newApplicationNumb']; ?>)">
Pickup where we left off
</button>
有了这个:
<button id="loginButtonSmall" onclick='resumeApplication("<?=$row['newApplicationNumb']?>")'> // Added quotation marks
Pickup where we left off
</button>