選択した値を使用してデータセットをフィルター処理する 2 つのドロップダウン リストがあります - 何らかの理由で空の配列が返されますか? 誰でも助けることができますか?
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?
}
アップデート:
最初にどちらかのドロップダウン リストから最初のオプションを選択しなかった場合にのみ実際に空の配列を返します (下の画像を参照)。たとえば、Temperature と 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);
}
?>