木叶下521 2013-08-19 10:24
浏览 926
已采纳

JS 从数据库取值表单自动填充

我想把数据库取出的值在页面加载后填充到表单,但是为什么没有填充呢?[code="java"]

<center>
    <h1 id="title">编辑题目</h1>
</center>

<%
Questions q=null;
if(request.getAttribute("q")!=null){
q= (Questions)request.getAttribute("q");
//获得QueryQueByIdservlet存储在request里的数据
//System.out.println(q.getQ_head()+"******q.getQ_head()");
}else{
q=null;
}
String url="";
if(request.getAttribute("isUpdate")!=null){
url="servlet/UpdateQueServlet";
}
else{
url="servlet/AddQueServlet";
}
int sID=0;

if(request.getParameter("s_id")!=null){
sID=Integer.parseInt(request.getParameter("s_id"));

}
else{
sID=0;
}
int q_id=0;
if(request.getParameter("q_id")!=null){
q_id=Integer.parseInt(request.getParameter("q_id"));
}else{q_id=0;}
%>

<form action="<%=url %>" method="post" name="form" >

url<input type="text"  value="<%=url %>" readonly="readonly"><br>
问卷ID<input type="text" name="sID" value="<%=sID %>" readonly="readonly"><br>
题目ID<input type="text" name="q_id" value="<%=q_id %>" readonly="readonly"><br>
    题目类型:<select name="question_type" onchange="change(this.value)">
        <%
            List<QuestionType> list = new ArrayList<QuestionType>();
            QuestionTypeDao dao = new QuestionTypeDaoImpl();
            list = dao.findAllQueType();// 调用实现类的查询全部方法
            for (int i = 0; i < list.size(); i++) {
                QuestionType qt = list.get(i);
        %>
        <option value="<%=qt.getQt_id()%>"
            <%
            if(q!=null){
            if (qt.getQt_id() == q.getQ_type().getQt_id()) {%>selected <%}}%>>
            <%=qt.getQt_des()%></option>
        <%
            }
        %>
    </select><br> 这里没你想要的类型?请填写新的类型。<br>
     <input type="text" name="newType"><br> 
     <input type="submit" value="添加" name="addNewType">&nbsp;&nbsp; 
     <input type="reset" value="重置" name="reset"><br> 
     题目名称:
     <input type="text" id="q_head" name="q_head"/><br>
    题目描述及备注:<br>
    <textarea cols="100" rows="4" id="q_remarks" name="q_remarks"></textarea><br> 
     题目个数:
     <input type="text" id="q_number" name="q_number" /><br>
     <span id="content"> 选项内容(一行一个选项):</span><br>
     <textarea cols="100" rows="5" id="q_body" name="q_body"></textarea><br> 

     <input type="submit" value="提交" name="submit">&nbsp;&nbsp; 
     <input type="reset" value="重置" name="reset">
</form>


<script type="text/javascript">
function initialise(){
    <%if(q!=null){
        System.out.println(q.getQ_head()+"***JS******q.getQ_head()");
        %>
    document.getElementById("q_head").value="<%=q.getQ_head()%>";
    document.getElementById("q_remarks").value="<%=q.getQ_remarks()%>";
    document.getElementById("q_number").value="<%=q.getQ_number()%>";
    document.getElementById("q_body").value="<%=q.getQ_body()%>";
    if(<%=q.getQ_type().getQt_des()%>=="单选+输入"||<%=q.getQ_type().getQt_des()%>=="多选+输入"){
        document.getElementById("content").innerHTML ="选项内容(一行一个选项,最后一行为输入框的提示语):"; 
    }
    else{
        document.getElementById("content").innerHTML ="选项内容(一行一个选项):"; 
    }
<%}%>
};
function change(type){
    if(type==3||type==4){
        document.getElementById("content").innerHTML ="选项内容(一行一个选项,最后一行为输入框的提示语):"; 
    }
    else{
        document.getElementById("content").innerHTML ="选项内容(一行一个选项):"; 
    }

}
</script>

[/code]

  • 写回答

4条回答 默认 最新

  • jinbingchuan 2013-08-19 10:35
    关注

    你直接

         <input type="text" id="q_number" name="q_number" value="<%=(q.getQ_number()==null?"":q.getQ_number())%>"/><br>  
    

    你使用js直接填充,真的多余了,简单的问题搞复杂了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题