Jquery 在url数据变量中传递数组
我试图通过href链接的数据变量传递数组:Jquery 在url数据变量中传递数组,jquery,arrays,url,Jquery,Arrays,Url,我试图通过href链接的数据变量传递数组: <a href="#" class="edit" data-myvar="<?php echo json_encode($row); ?>">Test</a> 控制台日志显示:未捕获的语法错误:输入意外结束 有什么想法吗 谢谢。您从未声明过变量: $(function(){ $('.edit').click(function(){ var res=jQuery.parseJSON(
<a href="#" class="edit" data-myvar="<?php echo json_encode($row); ?>">Test</a>
控制台日志显示:未捕获的语法错误:输入意外结束
有什么想法吗
谢谢。您从未声明过变量:
$(function(){
$('.edit').click(function(){
var res=jQuery.parseJSON($(this).data("myvar"));
console.log(res);
});
});
var jQuery.parseJSON(res=$(this).data("myvar"));
^ Not how to declare a variable
应该是:
var res = jQuery.parseJSON($(this).data("myvar"));
首先,在json\u encode()
调用中应用,以确保HTML中的所有引号都是正确的
如果jQuery包含有效的JSON语法,它已经为您对数据-
属性执行JSON解析。因此,采取以下措施是正确的做法:
// this will contain the JSON presentation of $row variable from PHP.
var res = $(this).data("myvar");
从:
每次尝试都会将字符串转换为JavaScript值
(这包括布尔、数字、对象、数组和null)。价值
仅当这样做不会更改值的
代表性。例如,“1E02”和“100.000”等同于
数字(数值100),但转换它们会改变
表示,以便将它们保留为字符串。字符串值“100”为
转换成数字100
当数据属性是对象(以“{”)或数组开头时
(以“[”开头),然后使用jQuery.parseJSON解析字符串;
它必须遵循有效的JSON语法,包括带引号的属性名称。如果
该值不能作为JavaScript值进行分析,而是作为
绳子
我已经更正了我的代码,这是我在发布帖子时犯的错误,问题仍然存在于correction@AlanA--您的单击处理程序中的
edit
拼写错误。此外,错误发生在哪一行?抱歉,“edit”是一个拼写错误,我的原始代码拼写正确要获得该错误,您必须不传递任何内容g进入解析函数。执行console.log的$(this.data(“myvar”)
并查看返回的内容:)显示实际呈现的HTML,而不是其中的php标记,我们可以提供帮助。问题在于数据myvar中的值。好的,我删除了HTML中使用的json编码。现在,当我尝试访问数组时:res[“user_id”]=未定义,res[0]=A,res[1]=r…等等..我很困惑您不删除json\u encode()
,您删除了jQuery本身内部完成的$.parseJSON
。我还增强了我的回答,以更好地澄清未来读者对此的看法。我已经尝试了您的建议,在html端使用json_encode,而不是使用$.parseJSON。现在我的输出是“未定义的”对于我上面提供的3个示例,请检查$row
变量的内容。