WEB相談室

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

タイトル:Javascriptでの複数データ間エラーについて

0:[投稿] 都築 [2007/02/25 16:35 ] [環境:IE6 ローカルのみ]

はじめまして。
Javascriptでのデータ移動で、うまくデータが渡せず困っています。
ソースは、下記の通りです。
エラーが出るわけではないのですが、データそのものが受け渡しできません。
1つならなんとか渡せるようなのですが、記述が間違ってますでしょうか?
ご指導お願いいたします。

【送信側】
<title>個人</title>
<link rel="stylesheet" href="style.css" type="text/css">
<script language="javascript">
<!--
var SelectData01;
var SelectData02;
function SetValue(objRadio){
    SelectData01 = objRadio.mitome_size.value;
    SelectData02 = objRadio.kakuin_sozai.value;
}

//データの移動
function next() {
    location.href="chuumon01"+".html"+"?"+SelectData01+"?"+SelectData02;
}

//-->
</script>
</head>
<body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#0000ff" alink="#0000ff">
<!--サイズ選択-->
        <font color="#ff0000">サイズを選択して下さい。</font>
<br>
<table border="1" width="600" cellspacing="0" cellpadding="0">
<tr><td align="center" width="200">8cm</td>
<td align="center" width="200">9cm</td>
<td align="center" width="200">10cm</td></tr>
<tr><td align="center" valign="top">
 <input type="radio" name="mitome_size" value="A"></td>
<td align="center" valign="top">
 <input type="radio" name="mitome_size" value="B"></td>
<td align="center" valign="top">
 <input type="radio" name="mitome_size" value="C"></td></tr>
</table>
<br>
<!--素材選択-->
        <font color="#ff0000">素材を選択して下さい。</font>
<br>
<table border="1" width="600" cellspacing="0" cellpadding="0">
 <tr><td align="center" width="150">絹</td>
    <td align="center" width="150">綿</td>
    <td align="center" width="150">皮</td></tr>
 <tr><td align="center" valign="top" width="150">
      <input type="radio" name="kakuin_sozai" value="A"></td>
    <td align="center" valign="top" width="150">
      <input type="radio" name="kakuin_sozai" value="B"></td>
    <td align="center" valign="top" width="150">
      <input type="radio" name="kakuin_sozai" value="C"></td></tr>
</table>
<br>
<table border="0" width="730">
 <tr><td align="center">
        <a href="#.html" onclick="next();">注文</a></td></tr>
</table>
</form>
</body>
</html>

【受信側】
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>買い物</title>
<script language="javascript">
<!--
//データの受け取り
dcstr = location.href;
dcstr =dcstr.split('?');
//dcstr[1]がパターン受け取りデータ
function SetPattern(){
    document.data.size.value=dcstr[1];
    document.data.sozai.value=dcstr[2];
}

//-->
</script>

</head>

<body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#0000ff" alink="#0000ff" onload="SetPattern()">
<center>
<table border="0" width="600" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="top">
<form method="post" action="" name="data">
サイズ <input type="text" name="size" size="15">
素材 <input type="text" name="sozai" size="15">
</form>
<br>
<form method="post">
<TABLE class=tb cellSpacing=1 width=512 align=center>
 <TBODY>
 <TR align=middle bgColor=#fcf8e2>
   <TD colSpan=2><B>お客様情報</B> (<FONT color=#ff6600>*</FONT>の項目は入力必須です。)</TD></TR>
 <TR>
   <TD width=104 bgColor=#fcf8e2>お名前<FONT color=#ff6600>*</FONT></TD>
   <TD width=381 bgColor=#fcf8e2><INPUT size=30 name=namae> </TD></TR>
 <TR>
   <TD width=104 bgColor=#fcf8e2>ふりがな<FONT color=#ff6600>*</FONT></TD>
   <TD width=381 bgColor=#fcf8e2><INPUT size=30 name=kana> </TD></TR>
</TABLE>
<br>

<table border="0" width="600" cellspacing="0" cellpadding="0">
 <TR>
     <td align="center" valign="middle" height="40">
        <a href="#.html">入力情報確認画面へ</a></TD>
 </TR>
</TABLE>
</form>
</td>
</tr>
</table>
</center>
</body>
</html>


1:[回答] ティルド [2007/02/25 17:13 ]

送信側の
location.href="chuumon01"+".html"+"?"+SelectData01+"?"+SelectData02;

location.href="chuumon01"+".html"+"?"+SelectData01+"&"+SelectData02;
に直してください。

ちなみに、受け取り側は
dcstr = (location.href.split('?'))[1].split('&');
document.data.size.value = dcstr[0];
document.data.sozai.value = dcstr[1];


ざっと見ただけなのでこれだけが原因なのかはわかりませんが、恐らく動くと思います。


2:[回答] まゆら [2007/02/25 18:25 ]

ありがとうございます。
今回の件、いろいろとテストしまして、
なんとか解決にいたりました。

function SetValue01(objRadio){
SelectData01 = objRadio.value;
}
function SetValue02(objRadio){
SelectData02 = objRadio.value;
}
と、2つに分けて

INPUTに
<input type="radio" name="kakuin_sozai" value="003" onClick="SetValue02(this);">
のonClick="SetValue02(this)を加えたところ、
無事に動きました。

本当にありがとうございました。

回答(必須): 状態:

お名前(必須):

URL:




[戻る]