Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON字符串上的D3.js NaN错误_Javascript_Php_Mysql_Json_D3.js - Fatal编程技术网

Javascript JSON字符串上的D3.js NaN错误

Javascript JSON字符串上的D3.js NaN错误,javascript,php,mysql,json,d3.js,Javascript,Php,Mysql,Json,D3.js,当我试图从一个JSON编码的字符串设置d3矩形的宽度时,我遇到了一个NaN错误,我看不出哪里出了问题 问题的一些背景: 表单中带有复选框的HTML页面使AJAX在选中和取消选中时调用PHP PHP根据复选框的状态构建mySQL查询 PHP将mySQL的返回编码为JSON PHP然后执行:$json=preg\u replace('/'(?\d+\.?\d*)“/'、'$1'、$toecho) /*^(这样做是为了删除整数/浮点数周围的双引号)^*/ PHP将$json回送到HTML div Ja

当我试图从一个JSON编码的字符串设置d3矩形的宽度时,我遇到了一个NaN错误,我看不出哪里出了问题

问题的一些背景: 表单中带有复选框的HTML页面使AJAX在选中和取消选中时调用PHP

PHP根据复选框的状态构建mySQL查询

PHP将mySQL的返回编码为JSON

PHP然后执行:$json=preg\u replace('/'(?\d+\.?\d*)“/'、'$1'、$toecho)

/*^(这样做是为了删除整数/浮点数周围的双引号)^*/

PHP将$json回送到HTML div

Javascript将div的innerHTML分配给名为res的变量

var res = document.getElementById("result").innerHTML;
然后,部分脚本尝试:

var bars = canvas.selectAll("rect")
        .data(res)
        .enter()
            .append("rect")
            .attr("width", function(d) {return parseInt(d.value1)})
            .attr("height", 10)
            .attr("y", function(d, i) {return i *100}); 
            }
我遇到了一个错误,我正在努力寻找原因。preg_替换的JSON数据如下所示:

[{"value1":60},{"value1":14},{"value1":3},{"value1":7}]
这似乎是正确的

事情发展到试图将value 1的int值指定给条的宽度的程度。我的方法可能很复杂,我一直在寻求如何做得更好的建议,但我也很想知道,即使我没有以最好的方式来做这件事(数据库中大约5000行的时间告诉我,这是非常需要过程的)


有人知道我搞砸了什么,如何解决这个问题,和/或更有效地解决这个问题吗?

你使用哪种浏览器?json是有效的,因此它必须与js代码有关。当使用jslint时,它会抱怨parseInt缺少基数->
parseInt(foo,10)也许你的浏览器在这个主题上也很挑剔。问题:当从div读取JSON时,你是否使用JSON.parse将JSON字符串转换为javascript关联数组(也称为对象)?类似于
var res=JSON.parse(document.getElementById(“result”).innerHTML)Chrome,在innerHTML.Sweet上没有re:JSON.parse。不知何故,我错过了innerHTML上的JSON.parse,这有助于解决问题。更大的想法如下。。。返回div可能是让多个用户使用相同的mySQL-creds(静态PHP)同时访问和查询数据库的一种简单方法,从而避免会话和清理外部json。我将尝试用小提琴来更好地说明这个概念