Javascript未收到或修改值

时间:2018-04-05 05:00:58

标签: javascript php

我有一个 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 ......

我环顾四周,真的不明白它是如何改变这样的价值......

非常感谢任何线索!

2 个答案:

答案 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>