我有两个下拉列表,它们的选定值将用于过滤数据集 - 出于某种原因返回一个空数组?任何人都可以帮忙吗?
d3.select("#parameterType").on("change", function() { filterData(); });
d3.select("#dateTimeTaken").on("change", function() { filterData(); });
function filterData()
{
var selectedParameter = document.getElementById("parameterType").value;
var selectedMonth = document.getElementById("dateTimeTaken").value;
console.log(selectedParameter);
console.log(selectedMonth);
var selectedData = data.filter(function(d)
{
return d.parameterType == selectedParameter &&
+d.dateTimeTaken.getMonth() == (selectedMonth - 1);
});
console.log(selectedData);//RETURNING EMPTY ARRAY?
}
更新:
如果我最初没有从任一下拉列表中选择第一个选项(见下图),则仅实际返回空数组(例如,如果我选择温度和 2(在 mo 显示月份)数组返回空 - 但如果选择 PH 和 3 将返回数组正确填充 - 那么如果我返回并选择第一个选项也会返回正确填充的数组?完全不解?这是否与下拉列表是从 mySql 数据库动态填充的事实有关 - 也许我的 PHP 不正确?(如下图)
<?php
require_once "json-util.php";
if(!empty($_GET['getlist']))
{
$list = $_GET['getlist'];
$qry='';
switch($list)
{
case 'parameterType':
{
$qry = "SELECT parameterType FROM Parameters";
break;
}
case 'dateTimeTaken':
{
$qry = "SELECT DISTINCT MONTH(dateTimeTaken) as dateTimeTaken FROM TestSourceSampleData";
break;
}
}
if(empty($qry)){ echo "invalid params! "; exit; }
$dbconn = mysql_connect('*******','********','*******')
or die("DB login failed!");
mysql_select_db('*****', $dbconn)
or die("Database does not exist! ".mysql_error($dbconn));
$result = mysql_query($qry,$dbconn)
or die("Query $qry failed! ".mysql_error($dbconn));
$rows = array();
while($rec = mysql_fetch_assoc($result))
{
$rows[] = $rec;
}
mysql_free_result($result);
mysql_close($dbconn);
echo json_encode($rows);
}
?>