我想在 django 中使用 Javascript 为我的网页创建一个下拉菜单
I want to create a drop down using Javascript for my web page in django
根据在第一个下拉列表中选择的列的数据类型,第二个下拉列表的列应该显示下面 Javascript 字典中的值,
注意:此处 {{col.1}}
给出了 SQL 列数据类型的详细信息,如 varchar、int
下面在我的 html 代码中:
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<h4>Modal Header</h4>
<!-- <h4 class="modal-title">Modal
Header</h4>-->
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<p>This is a small modal.</p>
<p>
<select id="columnname" name="columnname" class="form-control"
onchange="changecat(this.data-val);">
<!-- onchange="populatefilter()"-->
{% for col in column_names_nd_Data_type_tupl %}
<option data-val="{{col.1}}" value=" {{col.1}}"> {{col.0}},{{col.1}}
</option>
{% endfor %}
</select>
<br>
<hr>
</select>
<select name="datatype" id="datatype">
<option value="" disabled selected>Select</option>
</select>
<hr>
<select id="datatype" name="datatype" class="form-control">
<option value="<"> less than</option>
<option value=">"> Greater than</option>
<option value="="> equal to</option>
</select>
</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
我的Javascript:
<script type="text/javascript">
var mealsByCategory = {
bigint: ["<", ">", "=<", ">="],
varchar: ["contains", "exact", ],
datetime: ["options", "<", ]
}
function changecat(value) {
if (value.length == 0) document.getElementById("datatype").innerHTML = "<option></option>";
else {
var catOptions = "";
for (categoryId in mealsByCategory[value]) {
console.log("value",+value)
catOptions += "<option>" + mealsByCategory[value][categoryId] + "</option>";
}
document.getElementById("datatype").innerHTML = catOptions;
}
}
</script>
如何根据数据类型显示SQL过滤操作?
成功了,将方法更改为 getAttribute
function changecat(value) {
if (value.length == 0) document.getAttribute("data-val").innerHTML = "<option></option>";
else {
var catOptions = "";
for (categoryId in mealsByCategory[value]) {
console.log("value",+value)
catOptions += "<option>" + mealsByCategory[value][categoryId] + "</option>";
}
document.getElementById("datatype").innerHTML = catOptions;
}
}
根据在第一个下拉列表中选择的列的数据类型,第二个下拉列表的列应该显示下面 Javascript 字典中的值,
注意:此处 {{col.1}}
给出了 SQL 列数据类型的详细信息,如 varchar、int
下面在我的 html 代码中:
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<h4>Modal Header</h4>
<!-- <h4 class="modal-title">Modal
Header</h4>-->
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<p>This is a small modal.</p>
<p>
<select id="columnname" name="columnname" class="form-control"
onchange="changecat(this.data-val);">
<!-- onchange="populatefilter()"-->
{% for col in column_names_nd_Data_type_tupl %}
<option data-val="{{col.1}}" value=" {{col.1}}"> {{col.0}},{{col.1}}
</option>
{% endfor %}
</select>
<br>
<hr>
</select>
<select name="datatype" id="datatype">
<option value="" disabled selected>Select</option>
</select>
<hr>
<select id="datatype" name="datatype" class="form-control">
<option value="<"> less than</option>
<option value=">"> Greater than</option>
<option value="="> equal to</option>
</select>
</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
我的Javascript:
<script type="text/javascript">
var mealsByCategory = {
bigint: ["<", ">", "=<", ">="],
varchar: ["contains", "exact", ],
datetime: ["options", "<", ]
}
function changecat(value) {
if (value.length == 0) document.getElementById("datatype").innerHTML = "<option></option>";
else {
var catOptions = "";
for (categoryId in mealsByCategory[value]) {
console.log("value",+value)
catOptions += "<option>" + mealsByCategory[value][categoryId] + "</option>";
}
document.getElementById("datatype").innerHTML = catOptions;
}
}
</script>
如何根据数据类型显示SQL过滤操作?
成功了,将方法更改为 getAttribute
function changecat(value) {
if (value.length == 0) document.getAttribute("data-val").innerHTML = "<option></option>";
else {
var catOptions = "";
for (categoryId in mealsByCategory[value]) {
console.log("value",+value)
catOptions += "<option>" + mealsByCategory[value][categoryId] + "</option>";
}
document.getElementById("datatype").innerHTML = catOptions;
}
}