<%@ page contentType="text/html; charset=utf-8" %> 
<%@ page import="java.sql.*"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.StringTokenizer"%> 
<%
request.setCharacterEncoding("UTF-8");
//String tmp = new String(request.getParameter("tmp").getBytes("ISO-8859-1"),"utf-8") ;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String systime = sdf.format(new java.util.Date());String tmp = request.getParameter("tmp");
StringTokenizer st = null;
StringTokenizer st2 = null;
if(tmp != null){
tmp = new String(tmp.getBytes("ISO-8859-1"),"UTF-8");
st = new StringTokenizer(tmp,"|");
st2 = new StringTokenizer(tmp,"|");
}Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
String url="jdbc:oracle:thin:@localhost:1521:ORCL"; 
//orcl为你的数据库的SID 
String user="boo"; 
String password="boo"; String leixing[]    = {"nothing","矿粉石料室","焦炭室","焦煤室","喷吹煤室","合金室"};//更改部分
String pinzhong[]  = {"nothing","国内矿粉(炼铁)","竖炉球(炼铁)","竖炉球(青龙自产)","锰矿","钛矿","石灰石粉","白云石粉","白灰面","石灰石","轻烧白云石","石灰","精炼萤石","白云石渣","硅灰石","外购焦炭","主焦煤","肥煤","1/3焦煤","瘦煤","洗精煤合计","喷吹白煤","喷吹烟煤","烧结煤","硅锰合金","高碳锰铁","硅铁","锌锭","其他合金","生铁"};//更改部分
String yuefen[]   = {"nothing","1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"};if(st!= null){
Connection conn= DriverManager.getConnection(url,user,password); 
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
// 删除
st2.nextToken();
st2.nextToken();
st2.nextToken();
String month = yuefen[Integer.parseInt(st2.nextToken())];
String year  = st2.nextToken();
String sql2 = "delete from steelanalysis where nianfen='"+year+"' and yuefen='"+month+"'";
System.out.println(sql2);
stmt.execute(sql2);

// 添加
String sql="insert into steelanalysis(submittime,leixing,pinzhong,yuefen,nianfen,jihua,junjia,jine) values('"+st.nextToken()+"','"+leixing[Integer.parseInt(st.nextToken())]+"','"+pinzhong[Integer.parseInt(st.nextToken())]+"','"+yuefen[Integer.parseInt(st.nextToken())]+"','"+st.nextToken()+"','"+st.nextToken()+"','"+st.nextToken()+"','"+st.nextToken()+"')";//更改和添加了jinjia,jine。
System.out.println(sql);
ResultSet rs=stmt.executeQuery(sql);

stmt.execute("commit");
rs.close(); 
stmt.close(); 
conn.close(); 
}
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">

<script type="text/javascript">
function doSubmit(){
var liexing  =  getSelectValue('leixing');
var pinzhong   =  getSelectValue('pinzhong');
var yuefen =   getSelectValue('yuefen');
var nianfen  =  getSelectValue('nianfen');
var jihua =  document.getElementById("jihua").value;
var junjia   =  document.getElementById("junjia").value;//添加junjia
var jine  =  document.getElementById("jine").value;//添加jine
    var systime=document.getElementById("systime").value;

var tmp = systime+'|'+liexing+'|'+pinzhong+'|'+yuefen+'|'+nianfen+'|'+jihua+'|'+junjia+'|'+jine;
// 添加junjia,jine
document.submitform.action="steelanalysis.jsp?tmp="+tmp;

if(confirm("确认提交吗?")){
alert('提交完毕');
document.submitform.submit();
}
}


function getSelectValue(id){
     var _selObj=document.getElementById(id);//取下拉框的元素
     var _selVal=_selObj[_selObj.selectedIndex].value;//取下拉框被选中的值
     return _selVal;
}
</script>
  </head>
  
  <body>
  <br/>
    <table align="center">
     <tr>
     <td>
     类型
     </td>
     <td>
     <select style="width:100px" id="leixing">
     <option value="1">矿粉石料室</option>
         <option value="2">焦炭室</option>
         <option value="3">焦煤室</option>
         <option value="4">喷吹煤室</option>
         <option value="5">合金室</option>
         </select>
     </td>
     </tr>
     <tr>
     <td>
                品种
     </td>
     <td>
     <select style="width:100px" id="pinzhong">
     <option value="1">国内矿粉(炼铁)</option>
<option value="2">竖炉球(炼铁)</option>
     <option value="3">竖炉球(青龙自产)</option>
                    <option value="4">锰矿</option>
                    <option value="5">钛矿</option>
                    <option value="6">石灰石粉</option>
                    <option value="7">白云石粉</option>
                    <option value="8">白灰面</option>
                    <option value="9">石灰石</option>
                    <option value="10">轻烧白云石</option>
                    <option value="11">石灰</option>
                    <option value="12">精炼萤石</option>
                    <option value="13">白云石渣</option>
                    <option value="14">硅灰石</option>
                    <option value="15">外购焦炭</option>
                    <option value="16">主焦煤</option>
                    <option value="17">肥煤</option>
                    <option value="18">1/3焦煤</option>
                    <option value="19">瘦煤</option>
                    <option value="20">洗精煤合计</option>
                    <option value="21">喷吹白煤</option>
                    <option value="22">喷吹烟煤</option>
                    <option value="23">烧结煤</option>
                    <option value="24">硅锰合金</option>
                    <option value="25">高碳锰铁</option>
                    <option value="26">硅铁</option>
                    <option value="27">锌锭</option>
                    <option value="28">其他合金</option>
                    <option value="29">生铁</option>
                 </select>
     </td>
     </tr>
     <tr>
     <td>
                月份
     </td>
     <td>
     <select style="width:100px" id="yuefen">
     <option value="1">1月</option>
     <option value="2">2月</option>
     <option value="3">3月</option>
     <option value="4">4月</option>
     <option value="5">5月</option>
     <option value="6">6月</option>
     <option value="7">7月</option>
     <option value="8">8月</option>
     <option value="9">9月</option>
     <option value="10">10月</option>
     <option value="11">11月</option>
     <option value="12">12月</option>
     </select>
     </td>
     </tr>
        <tr>
     <td>
     年份
     </td>
     <td>
     <input type="text" id="nianfen" />
     </td>
     </tr>
     <tr>
     <td>
     计划值
     </td>
     <td>
     <input type="text" id="jihua" />
     </td>
     </tr>
     <tr>
     <td>
     平均价
     </td>
     <td>
     <input type="text" id="junjia" />
     </td>
     </tr>
     <tr>
     <td>
     计划值金额
     </td>
     <td>
     <input type="text" id="jine" />
     </td>
     </tr>
     <tr>
     <td colspan="4"  align="center">
     <br/>
     <button id="submit" onclick="doSubmit();">提交</button>
     </td>
     </tr>
    </table>
  </body>
  
  <input type="hidden" id="systime" value="<%=systime %>" />
  
  <form id="submitform" name="submitform" method="post">
   <input type="hidden" id="tmp" value="tmp" />
  </form>
  
</html>
  添加后就报错了。
错误是在点击提交按钮后出错的:
错误信息。'value'为空或不是对象
代码:0                              行:51 
                                      字符:8

解决方案 »

  1.   

       看了下因为不懂JS。所以没办法。问题应该出在添加的东西那部分。以前添加缩拉框里面的东西没事。。但是还没改过提交文本格式里面的东西。
      求解。最好能给点注释。解释下JS部分的意思。。 才学。。
      

  2.   

    是在提交前出错还是提交后出错,
    confirm("确认提交吗?")这个有执行吗?function getSelectValue(id){
                var _selObj=document.getElementById(id);//取下拉框的元素
                 var _selVal=_selObj[_selObj.selectedIndex].value;//取下拉框被选中的值
                 alert(_selVal);         //返回之前打印一下,看看是哪个有对象有问题。
                 return _selVal;
            }
      

  3.   


               var liexing  =     getSelectValue('leixing');    //<select>
                var pinzhong   =     getSelectValue('pinzhong');//<select>
                var yuefen =   getSelectValue('yuefen');//<select>
                var nianfen  =     getSelectValue('nianfen');   //下几个都是<input>,不能用 getSelectValue()方法
                var jihua =     document.getElementById("jihua").value;
                var junjia   =     document.getElementById("junjia").value;//添加junjia
                var jine  =  document.getElementById("jine").value;//添加jine
                var systime=document.getElementById("systime").value;
      

  4.   

     了解了一点。但是没看懂。。查明白了iunput的意思。。、
      

  5.   

    var jihua =     document.getElementById("jihua").value;//说的意思是这些都用input么。怎么实现的。我为什么啊。就是没改以前他用getElementById可行的。是不是提交文本框多了的原因啊。
                var junjia   =     document.getElementById("junjia").value;//添加junjia
                var jine  =  document.getElementById("jine").value;//添加jine
     
      

  6.   

    function getSelectValue(id){
                 var _selObj=document.getElementById(id);//取下拉框的元素
                 var _selVal=_selObj[_selObj.selectedIndex].value;//取下拉框被选中的值
                 return _selVal;
            }
    用来取下拉框的元素,"nianfen"是text文本,当然会报错.它没有selectedIndex属性 错误信息。'value'为空或不是对象
    var nianfen  =     getSelectValue('nianfen');
    <input type="text" id="nianfen" />
     
      

  7.   

             哦、、明白了。对了我刚才按照你说的改了。可是提交完成后。数据库的年份显示是:undefined
      其他的都正常啊。。
      

  8.   

         把 var nianfen  =     getSelectValue('nianfen');   
        改成var nianfen =     document.getElementById("nianfen").value;
        
      

  9.   

    推荐你用firefox的firbug调试下,就能看到具体错在哪儿了
      

  10.   

     没报错了。也能提交数据了。 。 这个用firbug能看么。、 
      

  11.   

    能看,你用firefox浏览器,安装firebug就可以看,很方便调试的,以后肯定用到