【问题标题】:Javascript passing through formatted int as string to function [duplicate]Javascript通过格式化的int作为字符串传递给函数[重复]
【发布时间】:2018-11-05 06:32:37
【问题描述】:

所以在 PHP 中我有这个变量

$studID

可以将 int 值格式化为“00-00000”。

我想将它传递给一个 Javascript 函数,所以我这样做了:

<?php ...
onclick="MyFunction('.$studID.')";
... ?>

这是 Javascript 文件:

function MyFunction(id1){
  alert("You have entered: " + id1);
}

我的问题是它返回前半部分减去后半部分的整数值,而不是 ID 本身!

例子:

已通过:15-00788

函数结果:-773(而不是 15-00788)

任何帮助将不胜感激!

【问题讨论】:

  • 如果您查看页面源代码,您会看到onclick="MyFunction(15-00788)"。 JavaScript 将15-00788 解释为数学运算。尝试onclick="MyFunction(' . json_encode($studID) . ')" 将值正确引用为字符串
  • @Phil 它不工作!我用我得到的每个变量都尝试了 json_encode,它似乎只适用于纯整数值。截至目前,我正在使用 murrayju 的逃生方法。

标签: javascript php


【解决方案1】:

如果没有完整的代码上下文,很难准确地告诉您,但问题是您需要用引号将数据括起来才能将其作为字符串传递给 JavaScript 函数。比如:

<?php ...
onclick="MyFunction(\''.$studID.'\')";
... ?>

应该可以。 (必须确保正确转义引号字符)

另外,您应该考虑在 php 中使用双引号,它支持内联变量扩展(而不是进行串联)。见docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 2014-01-21
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 2021-11-10
    • 2021-06-10
    相关资源
    最近更新 更多