1

我有两个下拉列表,它们的选定值将用于过滤数据集 - 出于某种原因返回一个空数组?任何人都可以帮忙吗?

    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);
}
?>

在此处输入图像描述

4

0 回答 0