0

我需要一些从 SQL 到 Javascript 的数据,所以我在 PhP 中调用它们,我试图将这些值传递给 Javascript,但是下面的代码会导致 NaN 失败......如果我为 Javascript 变量设置 PhP 命令,我不能将其用作数值...

<?php
  $val=12;
?>
<script>
  var val="<?php echo $val; ?>";
</script>

我有一个解决方案,但我敢肯定,这不是最好的方法:

<?php
  $val=12;
?>
<input type="number" id="val" name="val" value="<?php echo $val; ?>" hidden>
<script>
  var val=getElementById('val').value;
</script>
4

2 回答 2

0

谢谢你们!这更容易,然后我想!我想,引号总是需要的,因为 JavaScript 将“<?php”标签识别为字符串。

于 2021-03-01T12:52:01.063 回答
0

一种方法是删除引号:

<script>
  var val = <?php echo $val; ?>;
</script>

但是可能存在 php 产生意外结果的边缘情况,因此我认为保留引号并更新值是一个好习惯。

如果您确定该值将始终为整数和/或您的代码中需要一个整数,您可以执行以下操作:

var numericValue = parseInt(val, 10);

或者,如果您使用的是 lodash:

var numericValue = _.parseInt(val);

请记住将 10 作为第二个参数传递,它将在第一种情况下指定基数,因为可能存在一些极端情况,其中数字以不同于 10 的基数解释(如十六进制或二进制)。

否则,如果该值可以是浮点数,我建议这样做:

var numericValue = parseFloat(val);

如果你想限制小数点后的数字,你可以这样做:

var numericValue = Number(parseFloat(val).toFixed(4));

.toFixed()返回一个字符串,因此如果您仍然需要一个数字,最好使用该函数将其转换回一个数字Number()

通过输入传递值可能有效,但它看起来不是一个好习惯,无论如何要获取您需要在document之前添加的元素getElementById

var val = document.getElementById('val').value;
于 2021-02-26T09:15:36.527 回答