WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:エラーMSG:document.all.kotei.width:nullまたはオブジェクトがありません

0:[投稿] ゆかり [2005/05/23 15:58 ][環境:IE6 win2000 Tomcat]

こんにちは。よろしくお願いいたします。
二種類のチェックボックスを使っています。
削除指示と削除取消で、この二つのイベントで同じセッションIDの値を変えて実際に削除するものを取得しています。
エラーが出るのは削除指示の時に1番目から、全部の値をチェックせずにいくつかをチェックすると(個数は関係ないようです)タイトルのエラーメッセージが出てしまいます。
ですが、連続して最後の値までをチェックするか、全てチェックすると上手く動きます。
メッセージに出ている名前のオブジェクトはありません。
作成中にjavaの部分を間違えると同じメッセージが出ていたので今回もどこかがおかしいとは思うのですが、原因がわかりません。
どなたかご回答お願いいたします。

if(Check.equals("0")){
 if(sakujo_flg != null){
   HashMap DEL_INFO = new HashMap();                
   for(int i=0; i<sakujo_flg.length;i++){
     int temp = Integer.parseInt(sakujo_flg[i]);
     HashMap innerData = new HashMap();
     innerData.put("CD",Code[temp]);
     innerData.put("NM",name[temp]);
     DEL_INFO.put(String.valueOf(i),innerData);        
   }
   session.putValue("DEL_INFO",DEL_INFO);
}else if(Check.equals("1")){
 if(sakujoyame_flg != null && sakujo_flg != null){
   HashMap DEL_INFO = new HashMap();
   for(int i=0; i<sakujo_flg.length; i++){
     int flg = 0;
     int temp = Integer.parseInt(sakujo_flg[i]);
     for(int m=0; m<sakujoyame_flg.length; m++){
       int temp_yame = Integer.parseInt(sakujoyame_flg[m]);
    if( (Code[temp]).equals(yame_CD[temp_yame]) ){
         flg = 1;
       }
     }
     if(flg == 0){
        HashMap innerData = new HashMap();
        innerData.put("CD",Code[temp]);
        innerData.put("NM",name[temp]);
        DEL_INFO.put(String.valueOf(i),innerData);
     }
   }
   session.putValue("DEL_INFO",DEL_INFO);
 }
}

javaの部分だけですが、上の"check"が"0"の時の削除指示は上手く動きます。
下の"1"の削除取消の部分が上手く動きません。
やりたいことは削除指示のチェックボックスでチェックされたものを別にTBLに表示。
削除取消チェックボックスにチェックされたものを抜かして再度同じセッションIDのオブジェクトに格納したいのです。
どうかよろしくお願いいたします。


1:[回答] andi [URL] [2005/05/24 00:19 ]

エラーが発生しているのはクライアントですか?サーバですか?
サーバであればもう少し詳しくエラーメッセージが出ていませんか?
内容的にサーバっぽいと思いますが、document.allってサーバ側で出ますっけ?

==

事象から判断するに、ループ内で何がしかの箇所でnullを渡しているんじゃないかと。

> if(sakujo_flg != null){

sakuji_flgって独自のオブジェクトですか??

> int temp = Integer.parseInt(sakujo_flg[i]);

parseIntにnullが渡るとエラーとか。

> innerData.put("CD",Code[temp]);

hashMapも第二引数にnullは怪しいかも。

ちょいテスト環境が無いので勘ですけど。


2:[質問] ゆかり [2005/05/24 09:48 ]

早速ご回答ありがとうございます。
エラーの時は画面が途中までしか表示されません。
ソースを見ると<body>の後にヘッダーの部分をincludeしているのですが、それを読み取ってる途中で終わっています。
includeしているファイルはボタンとDBから情報をひとつ取ってきているだけのもので、そのボタン部分の表記のところで止まってしまいます。
止まるところはチェックボックスのチェックの数で若干前後しています。
エラーが起きているのはサーバー側じゃないかと思うのですが、よくわからないです。すみません。
値にnullを渡しているかどうかなのですが、
DEL_INFO.put(String.valueOf(i),innerData);
の後に
out.println((String)innerData.get("MD_CODE_NM")+(String)innerData.get("MD_SELF_CD")+(String)innerData.get("MD_SHIKIBETSU_ID"));
を入れて確認しましたが、全部出て欲しい情報は出力されました。
session.putValue("DEL_INFO",DEL_INFO);
また、このputvalueをコメント化するとまったくエラーが出ません。
これはsessionのやり方がおかしいのでしょうか。
if(Check.equals("0")){
の場合は上手く動くのでほんとにわかりません。
再度ご回答お願いいたします。


3:[完了] ゆかり [2005/05/24 12:27 ]

解決しました。
お騒がせしました。
DEL_INFO.put(String.valueOf(i),innerData);
この"i"が原因でした。
もともと"for"分でチェックボックスの要素分("i")だけループさせているのに実際に"DEL_INFO"に入れるのはチェックされているものだけなので、別にint型で変数を宣言してそれを
"String.valueOf(i),"
の"i"の部分に入れなければダメでした。

andi様、ありがとうございました。
これに懲りず、また行き詰まったら質問させていただください。
よろしくお願いいたします。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World