hj93062049
stop110
2011-03-25 16:04

加入新代码后提示“value”为空或不是对象

已采纳

以前有个完整版的。我想修改下,加了点东西但是不能用了。
[code="java"]<%@ 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()+"')";//添加部分为junjia,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">


My JSP 'index.jsp' starting 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;//添加部分
        var jine  =  document.getElementById("jine").value;
        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>












类型


矿粉石料室
焦炭室
焦煤室
喷吹煤室
合金室


品种


国内矿粉(炼铁)
竖炉球(炼铁)
竖炉球(青龙自产)
锰矿
钛矿
石灰石粉
白云石粉
白灰面
石灰石
轻烧白云石
石灰
精炼萤石
白云石渣
硅灰石
外购焦炭
主焦煤
肥煤
1/3焦煤
瘦煤
洗精煤合计
喷吹白煤
喷吹烟煤
烧结煤
硅锰合金
高碳锰铁
硅铁
锌锭
其他合金
生铁
             </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>




[/code]
报错的是
[img]http://dl.iteye.com/upload/attachment/446965/b5c72f7e-d37f-39a7-a8ef-2a3e02b2f25b.jpg[/img]
本人菜鸟,才学这么。看了代码只知道html部分没错。JS不懂。所以也就不知道了。
页面打开正常。但是一点提交就报错了。请大家看下。。最好给点注释。讲下。里面的结构。如果想改的话就好弄些了。。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • lxbccsu lxbccsu 10年前

    肯定是左下角的叹号,JS读取不到值,
    [quote]
    var nianfen = getSelectValue('nianfen');
    [/quote]

    改为
    [code="java"]
    document.getElementById("nianfen").value;
    [/code]

    原因很清楚,nianfen是文本框控件。
    你却采用了下拉列表控件方式读取,自然读取不到值。

    点赞 评论 复制链接分享
  • zgy52188 zgy52188 10年前

    好 var nianfen = document.getElementById("nianfen").value;
    先确定nianfen 变量是否取到值;
    如果有值,在地址栏中
    steelanalysis.jsp?tmp="+tmp;
    会看到nianfen的值,然后在提交的页面用request.getParameter获取一下参数看看是否能取到值。
    我不知道你提交的steelanalysis.jsp页面是不是和提交页面是一个。
    感觉好像你的是提交本页的。

    点赞 评论 复制链接分享
  • zgy52188 zgy52188 10年前

    你先测试:
    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;//添加部分

    var jine = document.getElementById("jine").value;

    var systime=document.getElementById("systime").value;
    看看是不是这些都能取到值;
    在有你的年份又不是下拉啊。

    点赞 评论 复制链接分享
  • zgy52188 zgy52188 10年前

    undefined
    是没有取到值 或者你用的对象属性是不对的
    原因是你用了上面那个朋友的方法。

    点赞 评论 复制链接分享
  • zgy52188 zgy52188 10年前

    你的信息是不是 在页面的左下角报的有叹号的页面错误啊?

    点赞 评论 复制链接分享

相关推荐