我有两个使用 PHP 从数据库中动态填充的下拉列表。它们包含指定列的所有值,例如,一个包含 parameterType 的所有值,另一个包含 dateTimeTaken 的所有值。
当数据被过滤并且其中一些选项可能不再适用时,有什么方法可以禁用这些选项中的任何一个 - 基本上我在问是否可以在数据时更新动态填充的下拉列表,如果可以,如何能完成吗?
更新:
我的数据格式如下:
[{"dateTimeTaken":"2013-01-01 14:05:14",
"reading":"0.90000",
"parameterType":"Flouride",
"inspectionPoint_id":"2"}....
我尝试使用以下代码执行此操作 - 但没有做任何事情?
d3.json("HistoricData.php", function(error,data)
{
var filtered_data = data.filter(function(d) { return d.inspectionPoint_id == i;})
filtered_data.forEach(function(d) {
d.dateTimeTaken = parseDate(d.dateTimeTaken);
d.reading = +d.reading;
d.parameterType = d.parameterType;
d.inspectionPoint_id = +d.inspectionPoint_id;
});
var check = d3.select("selectparameter")//select dropdown list
check.selectAll("option").each(checkOption);//select all options
//for any of the options that don't match the parameterType's
//from the filtered dataset set display to none
var checkOption = function (d, e) {
if(e !== d.values(d.parameterType)){
return d3.select(this).attr("display", "none");
}
};
更新 2
d3.select("#selectparameter")
.append("select")
.selectAll("option")
.data(filtered_data)
.enter().append("option")
.text(function(d) { return d.parameterType; })