django将从数据库获取的值作为下拉选择框(Choice_field)的默认值

django将从数据库获取的值作为下拉选择框(Choice_field)的默认值,第1张

首先,在django 视图函数中,传递 obj_list = [1, 2, 3] 类似这样的一个列表。

def show_data(request):

    obj_list = [1, 2, 3] 

    pass

    return render_to_response('index.html', {'obj_list': obj_list})

然后在 index.html 模板文件中,部分代码如下

<select>

    {% for obj in obj_list %}          

        <option value ="{{ forloop.counter }}">{{ obj }}</option>

    {% endfor %}

</select>

这样,模板就能自动根据传递过来的数据,进行显示。

这样说的已经很详细了,如果还是不懂。自己去django官网看相应版本的文档去吧。

这个很好写的,给你个例子吧:假如查询出的数据保存在student里,你的等级为一个list,(静态,动态自己定),页面就这样

<%

int[] list={ 0,1,2,3}

if(list!=null&&list.length!=0){

out.print(" <select id=\"dengji\" name=\"dengji\" onchange=\"javascript:onChangeBox()\">")

for(int i=0i<list.lengthi++){

if(student.getDendji()==list[i]){

out.print("<option value=\""+list[i]+"\" selected>"+"等级"+" "+list[i]+"</option>")

}else{

out.print("<option value=\""+list[i]+"\" >"+"等级"+" "+list[i]+"</option>")

}

}

}

out.print("</select>")

%>

如果只是显示就可以这么写,要做显示修改,还有声明个<input type="hidden" name="dengji" id="dengji" value="<%=student.getDengji%>"/>

然后用js给它重新赋值就可以了,js给帮你写个吧

<script type="text/javascript">

/** 下拉框选择**/

function onChangeBox(){

var dc=document.getElementById("dengji")

var index = dc.selectedIndex

var text = dc.options[index].value

document.all("dengji").value=text

}

</script>

事件在上面加上了,不用可以删掉,够详细了吧

如果是动态的话可以把数据都取出来放在DATATABLE里面,在后台循环一下拼出 select标签,在循环中判断哪个值需要设置为默认,就在option里面加 selected。 如果你提前就知道这个默认值并且是死的,可以直接在option里面加 selected。如果你是页面传值过来需要设置这个默认值,可以在页面加载的时候,直接用jquery 的 $('#selectid').val(值) 就可以了 根据不同情况用不同方法,不懂再问


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6891087.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-29
下一篇 2023-03-29

发表评论

登录后才能评论

评论列表(0条)

保存