jQuery字符串未定义

时间:2013-03-08 19:18:06

标签: php javascript

我正在通过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);
}

我没有得到名称值,如果我传递硬编码字符串然后它也没有到达这里只有整数可访问。

2 个答案:

答案 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才能将符号转换为可安全插入。