我正在通过onclick事件发送数据来运行,但是我无法得到字符串值我得到整数值,它说没有定义'value'。问题是什么。
我的代码是:
<a href="javascript:void(0)"
onclick="begin(<?php echo $data['user_id'];?>,
<?php echo $data['name'];?>);">
这是我的功能:
function begin(id,name)
{
alert(id);
alert(name);
}
我没有得到名称值,如果我传递硬编码字符串然后它也没有到达这里只有整数可访问。
答案 0 :(得分:3)
您需要将参数包装在引号中以使其成为字符串。
<a href="javascript:void(0)" onclick="begin('<?php echo $data['user_id'];?>','<?php echo $data['name'];?>');">
答案 1 :(得分:2)
正如马特所说,没有引号就不会被承认。
那就是说,我不认为他的回答是正确的。我更喜欢这段代码:(为了清晰起见添加了空格)
<a href="javascript:void(0);" onclick="begin(
<?php echo htmlspecialchars(json_encode($data['user_id'])); ?>,
<?php echo htmlspecialchars(json_encode($data['name'])); ?>
);">
json_encode
(docs)适用于将任何PHP变量(Resources除外)传递给JavaScript。在这种情况下,它将在字符串周围添加引号,并根据需要使用反斜杠转义字符。由于它属于某个属性,因此您需要htmlspecialchars
才能将符号转换为可安全插入。