将字符串传递给javascript函数参数将被解析为整数

将字符串传递给javascript函数参数将被解析为整数,javascript,php,Javascript,Php,在向javascript函数传递字符串方面有很多问题——这不是我在这里要问的。我的问题是,我必须将整数(客户ID)作为字符串从PHP传递给javascript函数。我必须这样做的原因是,有时客户ID可以有前导零,我不知道需要多少前导零,因此我无法在javascript中填充或格式化前导零 下面是调用我的函数的PHP。$行是odbc查询的结果数组 parse_str("customerId=" . $row["customerId"], $output); // This is called vi

在向javascript函数传递字符串方面有很多问题——这不是我在这里要问的。我的问题是,我必须将整数(客户ID)作为字符串从PHP传递给javascript函数。我必须这样做的原因是,有时客户ID可以有前导零,我不知道需要多少前导零,因此我无法在javascript中填充或格式化前导零

下面是调用我的函数的PHP。$行是odbc查询的结果数组

parse_str("customerId=" . $row["customerId"], $output);
// This is called via AJAX, so returning HTML as response
...
echo "<td><input type='checkbox' id='" . $output["customerId"] . "' onclick='disableAccount(" . $row["userAccountId"] . ", " . $output["customerId"] . ");' checked /></td>
例如,我有一个customerId“026608”。调用
disableAccount
函数时,
customerId
参数被解析为一个整数,去掉前导零,现在我有一个参数“26608”

如上所述,我不能使用填充将前导零添加到customerId,因为customerId上并不总是有前导零。customerId也可以有多个前导零


如何让函数解析字符串,即“026608”作为带前导零的参数?提前谢谢

尝试传递/转义引号,以便js将其解析为字符串

(\"" . $row["userAccountId"] . \""

尝试传递/转义引号,以便js将其解析为字符串

(\"" . $row["userAccountId"] . \""

john Smith的Great spot,也是另一个用于前导零的有用函数(尽管在本例中,并不比john的效率高)

function disableAccount(userAccountId, customerId) {
// Do stuff here
}
$id = 321;

function disableAccount($userAccountId, customerId)
    {
    //Result is 000321
    $userAccIdWithZeros = sprintf('%06d', $userAccountId);

    //Rest of your code...
    }

john Smith的Great spot,也是另一个用于前导零的有用函数(尽管在本例中,并不比john的效率高)

function disableAccount(userAccountId, customerId) {
// Do stuff here
}
$id = 321;

function disableAccount($userAccountId, customerId)
    {
    //Result is 000321
    $userAccIdWithZeros = sprintf('%06d', $userAccountId);

    //Rest of your code...
    }
在PHP中生成HTML时使用该语法,可读性更强:

echo <<< _
<td>
    <input type="checkbox" 
           id="{$output['customerId']}" 
           onclick="disableAccount('{$row['userAccountId']}', this.id);" 
           checked />
</td>
_;
echo在PHP中生成HTML时使用该语法,它更具可读性:

echo <<< _
<td>
    <input type="checkbox" 
           id="{$output['customerId']}" 
           onclick="disableAccount('{$row['userAccountId']}', this.id);" 
           checked />
</td>
_;

echo如果它有前导零,那么它不是整数,而是字符串。如果需要使用前导零进行处理,请全程将其作为字符串发送。php在将参数写入onclick处理程序时,不会将该值括在引号中,因此它将是一个数字。“上面的操作很好,并正确地将带前导零的字符串传递给函数。”不,不是。你在使用什么数据库?如果它有前导零,它不是整数,它是字符串。如果需要使用前导零进行处理,请全程将其作为字符串发送。php在将参数写入onclick处理程序时,不会将该值括在引号中,因此它将是一个数字。“上面的操作很好,并正确地将带前导零的字符串传递给函数。”不,没有。你用的是什么数据库?很有效,谢谢。我认为它被正确地传递了,因为我还在while循环中使用这个值来设置元素的ID。由于ID在那里输入正确,我认为它被正确地传递给函数。不客气,很高兴它有帮助;)这样,您的js函数被称为
disableAccount(“026608”…
而不是
disableAccount(026608…
这很有效,谢谢。我认为它被正确地传递了,因为我还在while循环中使用这个值来设置元素的ID。由于ID被正确地传入了那里,我认为它被正确地传递给了函数。不客气,很高兴它有帮助;)这样你的js函数被称为
disableAccount(“026608”…
而不是
disableAccount(026608…
谢谢,我不知道!谢谢,我不知道!