出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

チェックボックスのOff時の値を取得して配列に渡したい   はまぐりんさん [2004/10/19 6:11:37] [4695]
  Re:チェックボックスのOff時の値を取得して配列に渡したい   暇人さん [2004/10/19 9:16:22] [4696]
    Re:チェックボックスのOff時の値を取得して配列に渡したい   はまぐりんさん [2004/10/20 6:24:43] [4697]
      Re:チェックボックスのOff時の値を取得して配列に渡したい   Lightningさん [2004/10/20 8:43:03] [4698]
        Re:チェックボックスのOff時の値を取得して配列に渡したい   はまぐりんさん [2004/10/20 23:30:06] [4701]
          Re:チェックボックスのOff時の値を取得して配列に渡したい   Lightningさん [2004/10/21 8:31:52] [4704]
            Re:チェックボックスのOff時の値を取得して配列に渡したい   はまぐりんさん [2004/10/22 5:19:42] [4707]
              Re:チェックボックスのOff時の値を取得して配列に渡したい   Lightningさん [2004/10/29 11:35:08] [4726]
      Re:チェックボックスのOff時の値を取得して配列に渡したい   暇人さん [2004/10/20 14:03:08] [4699]
        Re:チェックボックスのOff時の値を取得して配列に渡したい   はまぐりんさん [2004/10/20 23:48:24] [4702]
          Re:チェックボックスのOff時の値を取得して配列に渡したい   暇人さん [2004/10/21 0:35:18] [4703]
            Re:チェックボックスのOff時の値を取得して配列に渡したい   はまぐりんさん [2004/10/22 5:16:37] [4706]
              Re:チェックボックスのOff時の値を取得して配列に渡したい   暇人さん [2004/10/22 9:44:00] [4708]
                Re:チェックボックスのOff時の値を取得して配列に渡したい   暇人さん [2004/10/22 9:50:56] [4709]
                  Re:チェックボックスのOff時の値を取得して配列に渡したい   はまぐりんさん [2004/10/23 6:41:32] [4710]

[4695] チェックボックスのOff時の値を取得して配列に渡したい
投稿者:はまぐりんさん 2004/10/19 6:11:37
ASPでショッピングカートを作成しています。買い物かご内の内容を削除したい場合、チェックボックスにチェックをし、「更新する」ボタンを押すと削除されるようになっていますが、うまく動きません。

チェックボックスがチェックされない場合、空白になるため、値が渡されず、配列の順序がずれてしまいます。
JavaScriptでOnClickを用いてFormのValueを操作するなども試みてみましたが、どうもうまく動きません。

長いので一部省きますが、

<form method="post" action="mail_order.asp?act=update&id=<%= ObjRS("cus_id") %>" name="cart">
<table width="760" bordercolor="#666666" border="1" cellspacing="0">
<tr>
<td width="33" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">削除</font></div>
</td>
</tr>
<tr>
<td width="33" height="18">
<div align="center">
<input type="checkbox" name="del">
</div>
</td>
</tr>

<tr>
<td align="right" width="530"><input type="image" src="pic/mailorder/update.jpg" name="act" onClick = "check()"></td>
</form>
</td></tr>


Sub Update

Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
Server.Mappath("../Data/mail_order.mdb")


id = Request.QueryString("id")
cus_id = session.sessionID

del = Request.Form("del")
s_del = split(del, ",")

for i = 0 to UBound(u_id)

if s_del(i) = "delete" then
Set ObjRS = Server.CreateObject("ADODB.Recordset")
StrSQL = "delete * from shopping where id =" & u_id(i)
ObjConn.Execute(StrSQL)
else

............

end if
Next

といった感じになっています。
どなたかご教授くださいませんか。

[4696] Re:チェックボックスのOff時の値を取得して配列に渡したい
投稿者:暇人さん 2004/10/19 9:16:22
どうも、暇人です。

> 長いので一部省きますが、
との事ですが。肝心の部分も省かれてませんか?
これではロジックの意味が理解不能です

問1、配列u_idって何ですか。宣言も値の代入もされていないように見えます。

問2、checkboxのvalueが以下の文書では何も入ってないように見えますが。javaScriptかVBScript等クライアントサイドスクリプトで代入してるのですか?そこのところも表記していただけないとなんとも・・・

> ASPでショッピングカートを作成しています。買い物かご内の内容を削除したい場合、チェックボックスにチェックをし、「更新する」ボタンを押すと削除されるようになっていますが、うまく動きません。
>
> チェックボックスがチェックされない場合、空白になるため、値が渡されず、配列の順序がずれてしまいます。
> JavaScriptでOnClickを用いてFormのValueを操作するなども試みてみましたが、どうもうまく動きません。
>
> 長いので一部省きますが、
>
> <form method="post" action="mail_order.asp?act=update&id=<%= ObjRS("cus_id") %>" name="cart">
> <table width="760" bordercolor="#666666" border="1" cellspacing="0">
> <tr>
> <td width="33" height="10" nowrap>
> <div align="center"><font size="2" face="MS Pゴシック, Osaka">削除</font></div>
> </td>
> </tr>
> <tr>
> <td width="33" height="18">
> <div align="center">
> <input type="checkbox" name="del">
> </div>
> </td>
> </tr>
>
> <tr>
> <td align="right" width="530"><input type="image" src="pic/mailorder/update.jpg" name="act" onClick = "check()"></td>
> </form>
> </td></tr>
>
>
> Sub Update
>
> Set ObjConn = Server.CreateObject("ADODB.Connection")
> ObjConn.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
> Server.Mappath("../Data/mail_order.mdb")
>
>
> id = Request.QueryString("id")
> cus_id = session.sessionID
>
> del = Request.Form("del")
> s_del = split(del, ",")
>
> for i = 0 to UBound(u_id)
>
> if s_del(i) = "delete" then
> Set ObjRS = Server.CreateObject("ADODB.Recordset")
> StrSQL = "delete * from shopping where id =" & u_id(i)
> ObjConn.Execute(StrSQL)
> else
>
> ............
>
> end if
> Next
>
> といった感じになっています。
> どなたかご教授くださいませんか。

[4697] Re:チェックボックスのOff時の値を取得して配列に渡したい
投稿者:はまぐりんさん 2004/10/20 6:24:43
おっしゃるとおりですね。
大変失礼しました。
それでは、長いですが、先頭から必要な部分まで、全部添付します。製品一覧は別ファイルになっており、カートの中身を表示する部分からこのファイルです。

問題となっているのはUpdateの部分で、チェックボックスの値を配列(s_del(i))に渡していますが、チェックされていない場合は値が渡されないため、(i)がエラーになります。

宜しくお願いします。


<%
act = Request("act")


prod_num = Request.Form("prod_num")
prod_name = Request.Form("prod_name")
mfg = Request.Form("mfg")
unit_price = Request.Form("unit_price")
link = Request.Form("link")
qty = Request.Form("qty")
special = Request.Form("special")
special_price = Request.Form("special_price")


call showheader()

Select Case act


Case "cart"
Call ShoppingCart
Case "update"
Call Update
Case "delete"
Call Delete
Case "kanryo"
Call Kanryo
Case "checkout"
Call Checkout
Case "grandtotal"
Call grandtotal
Case else
Call cart


end select
%>

<%
call showFooter()
'50


'カートの中身を表示(1個目)

Sub cart()
%>

<%
id = Request.QueryString("id")
cus_id = session.sessionID

Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
Server.Mappath("../Data/mail_order.mdb")

Set ObjRS = Server.CreateObject("ADODB.Recordset")
StrSQL = "select * from products where id = " & id
ObjRS.Open StrSQL, ObjConn



prod_num = ObjRS("prod_num")
prod_name = ObjRS("prod_name")
wei = ObjRS("wei")

special = ObjRS("special")
category = ObjRS("category")

if special = 1 then
price = ObjRS("special_price")
else price = ObjRS("unit_price")
end if

qty = 1
total_price = FormatNumber(price * qty, 2)

if ObjRS("category") = 1 or ObjRS("category") = 2 then
tax = FormatNumber(total_price * 0.02)
else tax = FormatNumber(total_price * 0.085)
end if

total_wei = FormatNumber(wei * qty)

StrSQL = "insert into shopping(category, cus_id, prod_num, prod_name, qty, wei, total_wei, unit_price, total_price, special, tax)" & _
"values ('" & category & "','" & cus_id & "','" & prod_num & "','" & prod_name & "','" & qty & "','" & wei & "','" & total_wei & "','" & price & "','" & total_price & "','" & special & "','" & tax & "')"
ObjConn.Execute (StrSQL)

Response.Redirect "mail_order.asp?act=cart&id=" & cus_id

'105

ObjRS.Close
Set ObjRS = Nothing

ObjConn.CLose
Set ObjConn = Nothing

end sub


' ショッピングカート表示

Sub shoppingcart()

cus_id = Request.QueryString("id")

Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
Server.Mappath("../Data/mail_order.mdb")

Set ObjRS = Server.CreateObject("ADODB.Recordset")
StrSQL = "select * from shopping where cus_id =" & cus_id
ObjRS.Open StrSQL, ObjConn

if ObjRS.eof and ObjRS.bof then
%>

<tr>
<td height="5" colspan="2">
<div align="right"><font size="2" face="MS Pゴシック, Osaka"><a href="mail_order_top.asp"><br>
メールオーダートップ</a> | <a href="mail_order_special.asp">特売品コーナー</a> | <a href="mail_order.asp?act=checkout&id=<%= cus_id %>">チェックアウト</a>
</font></div>
</td>
</tr>
<tr valign="top">
<td height="217" colspan="2">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3" height="16"><img src="Pic/MailOrder/ShoppingCart/shopping_cart_title.gif" width="762" height="67"></td>
</tr>
<tr valign="top">
<td height="266" colspan="3"><font size="2" face="MS Pゴシック, Osaka"><br>
<br><br><br>
<center>お客様のショッピングカートは空です。<br><br>
<A href="JavaScript: history.back()">前のページに戻る。</a></font></center>
<br>
</td>
</tr>
<%

else

%>
<!--//
function check(){
if (document.cart.del.checked == ture)
document.cart.del.value = "delete";
if (document.cart.del.checked == false)
document.cart.del.value = "keep";
}
--> <tr>
<td height="5" colspan="2">
<div align="right"><font size="2" face="MS Pゴシック, Osaka"><a href="mail_order_top.asp"><br>
メールオーダートップ</a> | <a href="mail_order_special.asp">特売品コーナー</a> | <a href="mail_order.asp?act=checkout&id=<%= cus_id %>">チェックアウト</a>
</font></div>
</td>
</tr>



<tr valign="top">
<td height="217" colspan="2">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3" height="16"><img src="Pic/MailOrder/ShoppingCart/shopping_cart_title.gif" width="762" height="67"></td>
</tr>
<tr valign="top">
<td height="266" colspan="3"><font size="2" face="MS Pゴシック, Osaka"><br>
<br>
お客様のショッピングカートの中身は下記の通りです。</font><br>
<br>

<form method="post" action="mail_order.asp?act=update&id=<%= ObjRS("cus_id") %>" name="cart">
<table width="760" bordercolor="#666666" border="1" cellspacing="0">
<tr>
<td width="33" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">削除</font></div>
</td>
<td width="58" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">商品番号</font></div>
</td>
<td width="395" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">商品名</font></div>
</td>
<td width="35" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">個数</font></div>
</td>
<td width="63" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">単価</font></div>
</td>
<td width="72" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">重量</font></div>
</td>
<td width="74" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">合計金額</font></div>
</td>
</tr>

<%
Do Until ObjRS.eof

If ObjRS("special") = "1" then
color = "#ff0000"
else
color = "#000000"
end if



%>


<tr>
<td width="33" height="18">
<div align="center">
<input type="checkbox" name="del">
</div>
</td>

<td width="58" height="18"><font size="2"><%= ObjRS("prod_num") %></font></td>
<td width="395" height="18"><font size="2"><%= ObjRS("prod_name") %></font></td>
<td width="35" height="18" align="left">
<div align="center" align="left">
<font size="2"><input type="text" name="qty" size="4" maxlength="4" value="<%= ObjRS("qty") %>"></font>
</div>
</td>
<td width="63" height="18" align="right"><font size="2" color="<%= color %>">$<%= ObjRS("unit_price") %></font></td>
<td width="72" height="18" align="center"><font size="2"><%= ObjRS("total_wei") %> Lbs</font></td>
<td width="74" height="18" align="right"><font size="2" color="<%= color %>">$<%= FormatNumber(ObjRS("total_price")) %></font></td>
</tr>

<input type="hidden" name="prod_id" value="<%= ObjRS("id") %>">
<input type="hidden" name="prod_num" value="<%= ObjRS("prod_num") %>" >
<input type="hidden" name="prod_name" value="<%= ObjRS("prod_name") %>" >
<input type="hidden" name="unit_price" value="<%= ObjRS("unit_price") %>" >
<input type="hidden" name="wei" value="<%= ObjRS("wei") %>" >
<input type="hidden" name="total_price" value="<%= ObjRS("total_price") %>">
<input type="hidden" name="category" value="<%= ObjRS("category") %>">

<%

total_price = ObjRS("total_price")
t_t_price = FormatNumber(t_t_price + total_price, 2)

ObjRS.MoveNext
Loop

%>

<tr>
<td colspan="6" align="right"><font size="2">小合計金額</font></td>
<td align="right"><font size="2">$<%= t_t_price %></font></td>
</tr>
<%
ObjRS.Close
Set ObjRS = Nothing

ObjConn.Close
Set ObjConn = Nothing

Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
Server.Mappath("../Data/mail_order.mdb")

Set ObjRS = Server.CreateObject("ADODB.Recordset")
StrSQL = "select * from shopping where cus_id=" & cus_id
ObjRS.Open StrSQL, ObjConn

%>
</table>
<table width="760" border="0">
<tr>
<td align="right" width="530"><input type="image" src="pic/mailorder/update.jpg" name="act" onClick = "check()"></td>
</form>

<form method="post" action="mail_order_top.asp">
<td align="right" width="130"><input type="image" src="pic/mailorder/shopping.jpg" name="act"></td>
</form>

<form method="post" action="mail_order.asp?act=checkout&id=<%= ObjRS("cus_id") %>">
<td align="left" width="100"><input type="image" src="pic/mailorder/checkout.jpg" name="act"></td>
</form>
</tr>
</table>
</td>
</tr>
</table>

<%
end if
%>

</td>
</tr>
<tr>
<td height="71" colspan="2">
<div align="center"><font size="2" face="MS Pゴシック, Osaka"><a href="mail_order_top.asp">メールオーダートップ</a>
| <a href="mail_order_special.asp">特売品コーナー</a></font><br>
</div>
<hr align="center">
</td>
</tr>


<%
ObjRS.Close
Set ObjRS = Nothing

ObjConn.Close
Set ObjConn = Nothing

End Sub




' カートの中身を更新

Sub Update

Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
Server.Mappath("../Data/mail_order.mdb")


id = Request.QueryString("id")
cus_id = session.sessionID

del = Request.Form("del")
s_del = split(del, ",")


cus_id = Request.QueryString("id")
prod_id = Request.Form("prod_id")
u_id = split(prod_id, ",")
qty = Request.Form("qty")
u_qty = split(qty, ",")
wei = Request.Form("wei")
u_wei = split(wei, ",")
unit_price = Request.Form("unit_price")
u_unit_price = split(unit_price, ",")


for i = 0 to UBound(u_id)

if s_del(i) = "delete" then
Set ObjRS = Server.CreateObject("ADODB.Recordset")
StrSQL = "delete * from shopping where id =" & u_id(i)
ObjConn.Execute(StrSQL)
else

Set ObjRS = Server.CreateObject("ADODB.Recordset")
StrSQL = "select * from shopping where cus_id =" & cus_id & " and id = " & u_id(i)
ObjRS.Open StrSQL, ObjConn, 3, 3

ObjRS("qty") = u_qty(i)
ObjRS("wei") = u_wei(i)
ObjRS("total_wei") = FormatNumber(u_wei(i) * u_qty(i))
ObjRS("total_price") = FormatNumber(u_unit_price(i) * u_qty(i),2)
ObjRS("tax") = ObjRS("total_price") * tax_rate
ObjRS.Update

end if
Next

Response.Redirect "mail_order.asp?act=cart&id=" & cus_id

ObjRS.Close
Set ObjRS = Nothing

ObjConn.Close
Set ObjConn = Nothing


End Sub<!-- #include file = "includes.asp" -->

<%
act = Request("act")


prod_num = Request.Form("prod_num")
prod_name = Request.Form("prod_name")
mfg = Request.Form("mfg")
unit_price = Request.Form("unit_price")
link = Request.Form("link")
qty = Request.Form("qty")
special = Request.Form("special")
special_price = Request.Form("special_price")


call showheader()

Select Case act


Case "cart"
Call ShoppingCart
Case "update"
Call Update
Case "delete"
Call Delete
Case "kanryo"
Call Kanryo
Case "checkout"
Call Checkout
Case "grandtotal"
Call grandtotal
Case else
Call cart


end select
%>

<%
call showFooter()
'50


'カートの中身を表示(1個目)

Sub cart()
%>

<%
id = Request.QueryString("id")
cus_id = session.sessionID

Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
Server.Mappath("../Data/mail_order.mdb")

Set ObjRS = Server.CreateObject("ADODB.Recordset")
StrSQL = "select * from products where id = " & id
ObjRS.Open StrSQL, ObjConn



prod_num = ObjRS("prod_num")
prod_name = ObjRS("prod_name")
wei = ObjRS("wei")

special = ObjRS("special")
category = ObjRS("category")

if special = 1 then
price = ObjRS("special_price")
else price = ObjRS("unit_price")
end if

qty = 1
total_price = FormatNumber(price * qty, 2)

if ObjRS("category") = 1 or ObjRS("category") = 2 then
tax = FormatNumber(total_price * 0.02)
else tax = FormatNumber(total_price * 0.085)
end if

total_wei = FormatNumber(wei * qty)

StrSQL = "insert into shopping(category, cus_id, prod_num, prod_name, qty, wei, total_wei, unit_price, total_price, special, tax)" & _
"values ('" & category & "','" & cus_id & "','" & prod_num & "','" & prod_name & "','" & qty & "','" & wei & "','" & total_wei & "','" & price & "','" & total_price & "','" & special & "','" & tax & "')"
ObjConn.Execute (StrSQL)

Response.Redirect "mail_order.asp?act=cart&id=" & cus_id

'105

ObjRS.Close
Set ObjRS = Nothing

ObjConn.CLose
Set ObjConn = Nothing

end sub


' ショッピングカート表示

Sub shoppingcart()

cus_id = Request.QueryString("id")

Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
Server.Mappath("../Data/mail_order.mdb")

Set ObjRS = Server.CreateObject("ADODB.Recordset")
StrSQL = "select * from shopping where cus_id =" & cus_id
ObjRS.Open StrSQL, ObjConn

if ObjRS.eof and ObjRS.bof then
%>

<tr>
<td height="5" colspan="2">
<div align="right"><font size="2" face="MS Pゴシック, Osaka"><a href="mail_order_top.asp"><br>
メールオーダートップ</a> | <a href="mail_order_special.asp">特売品コーナー</a> | <a href="mail_order.asp?act=checkout&id=<%= cus_id %>">チェックアウト</a>
</font></div>
</td>
</tr>
<tr valign="top">
<td height="217" colspan="2">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3" height="16"><img src="Pic/MailOrder/ShoppingCart/shopping_cart_title.gif" width="762" height="67"></td>
</tr>
<tr valign="top">
<td height="266" colspan="3"><font size="2" face="MS Pゴシック, Osaka"><br>
<br><br><br>
<center>お客様のショッピングカートは空です。<br><br>
<A href="JavaScript: history.back()">前のページに戻る。</a></font></center>
<br>
</td>
</tr>
<%

else

%>
<!--//
function check(){
if (document.cart.del.checked == ture)
document.cart.del.value = "delete";
if (document.cart.del.checked == false)
document.cart.del.value = "keep";
}
--> <tr>
<td height="5" colspan="2">
<div align="right"><font size="2" face="MS Pゴシック, Osaka"><a href="mail_order_top.asp"><br>
メールオーダートップ</a> | <a href="mail_order_special.asp">特売品コーナー</a> | <a href="mail_order.asp?act=checkout&id=<%= cus_id %>">チェックアウト</a>
</font></div>
</td>
</tr>



<tr valign="top">
<td height="217" colspan="2">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3" height="16"><img src="Pic/MailOrder/ShoppingCart/shopping_cart_title.gif" width="762" height="67"></td>
</tr>
<tr valign="top">
<td height="266" colspan="3"><font size="2" face="MS Pゴシック, Osaka"><br>
<br>
お客様のショッピングカートの中身は下記の通りです。</font><br>
<br>

<form method="post" action="mail_order.asp?act=update&id=<%= ObjRS("cus_id") %>" name="cart">
<table width="760" bordercolor="#666666" border="1" cellspacing="0">
<tr>
<td width="33" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">削除</font></div>
</td>
<td width="58" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">商品番号</font></div>
</td>
<td width="395" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">商品名</font></div>
</td>
<td width="35" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">個数</font></div>
</td>
<td width="63" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">単価</font></div>
</td>
<td width="72" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">重量</font></div>
</td>
<td width="74" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">合計金額</font></div>
</td>
</tr>

<%
Do Until ObjRS.eof

If ObjRS("special") = "1" then
color = "#ff0000"
else
color = "#000000"
end if



%>


<tr>
<td width="33" height="18">
<div align="center">
<input type="checkbox" name="del">
</div>
</td>

<td width="58" height="18"><font size="2"><%= ObjRS("prod_num") %></font></td>
<td width="395" height="18"><font size="2"><%= ObjRS("prod_name") %></font></td>
<td width="35" height="18" align="left">
<div align="center" align="left">
<font size="2"><input type="text" name="qty" size="4" maxlength="4" value="<%= ObjRS("qty") %>"></font>
</div>
</td>
<td width="63" height="18" align="right"><font size="2" color="<%= color %>">$<%= ObjRS("unit_price") %></font></td>
<td width="72" height="18" align="center"><font size="2"><%= ObjRS("total_wei") %> Lbs</font></td>
<td width="74" height="18" align="right"><font size="2" color="<%= color %>">$<%= FormatNumber(ObjRS("total_price")) %></font></td>
</tr>

<input type="hidden" name="prod_id" value="<%= ObjRS("id") %>">
<input type="hidden" name="prod_num" value="<%= ObjRS("prod_num") %>" >
<input type="hidden" name="prod_name" value="<%= ObjRS("prod_name") %>" >
<input type="hidden" name="unit_price" value="<%= ObjRS("unit_price") %>" >
<input type="hidden" name="wei" value="<%= ObjRS("wei") %>" >
<input type="hidden" name="total_price" value="<%= ObjRS("total_price") %>">
<input type="hidden" name="category" value="<%= ObjRS("category") %>">

<%

total_price = ObjRS("total_price")
t_t_price = FormatNumber(t_t_price + total_price, 2)

ObjRS.MoveNext
Loop

%>

<tr>
<td colspan="6" align="right"><font size="2">小合計金額</font></td>
<td align="right"><font size="2">$<%= t_t_price %></font></td>
</tr>
<%
ObjRS.Close
Set ObjRS = Nothing

ObjConn.Close
Set ObjConn = Nothing

Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
Server.Mappath("../Data/mail_order.mdb")

Set ObjRS = Server.CreateObject("ADODB.Recordset")
StrSQL = "select * from shopping where cus_id=" & cus_id
ObjRS.Open StrSQL, ObjConn

%>
</table>
<table width="760" border="0">
<tr>
<td align="right" width="530"><input type="image" src="pic/mailorder/update.jpg" name="act" onClick = "check()"></td>
</form>

<form method="post" action="mail_order_top.asp">
<td align="right" width="130"><input type="image" src="pic/mailorder/shopping.jpg" name="act"></td>
</form>

<form method="post" action="mail_order.asp?act=checkout&id=<%= ObjRS("cus_id") %>">
<td align="left" width="100"><input type="image" src="pic/mailorder/checkout.jpg" name="act"></td>
</form>
</tr>
</table>
</td>
</tr>
</table>

<%
end if
%>

</td>
</tr>
<tr>
<td height="71" colspan="2">
<div align="center"><font size="2" face="MS Pゴシック, Osaka"><a href="mail_order_top.asp">メールオーダートップ</a>
| <a href="mail_order_special.asp">特売品コーナー</a></font><br>
</div>
<hr align="center">
</td>
</tr>


<%
ObjRS.Close
Set ObjRS = Nothing

ObjConn.Close
Set ObjConn = Nothing

End Sub




' カートの中身を更新

Sub Update

Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
Server.Mappath("../Data/mail_order.mdb")


id = Request.QueryString("id")
cus_id = session.sessionID

del = Request.Form("del")
s_del = split(del, ",")


cus_id = Request.QueryString("id")
prod_id = Request.Form("prod_id")
u_id = split(prod_id, ",")
qty = Request.Form("qty")
u_qty = split(qty, ",")
wei = Request.Form("wei")
u_wei = split(wei, ",")
unit_price = Request.Form("unit_price")
u_unit_price = split(unit_price, ",")


for i = 0 to UBound(u_id)

if s_del(i) = "delete" then
Set ObjRS = Server.CreateObject("ADODB.Recordset")
StrSQL = "delete * from shopping where id =" & u_id(i)
ObjConn.Execute(StrSQL)
else

Set ObjRS = Server.CreateObject("ADODB.Recordset")
StrSQL = "select * from shopping where cus_id =" & cus_id & " and id = " & u_id(i)
ObjRS.Open StrSQL, ObjConn, 3, 3

ObjRS("qty") = u_qty(i)
ObjRS("wei") = u_wei(i)
ObjRS("total_wei") = FormatNumber(u_wei(i) * u_qty(i))
ObjRS("total_price") = FormatNumber(u_unit_price(i) * u_qty(i),2)
ObjRS("tax") = ObjRS("total_price") * tax_rate
ObjRS.Update

end if
Next

Response.Redirect "mail_order.asp?act=cart&id=" & cus_id

ObjRS.Close
Set ObjRS = Nothing

ObjConn.Close
Set ObjConn = Nothing


End Sub

[4698] Re:チェックボックスのOff時の値を取得して配列に渡したい
投稿者:Lightningさん 2004/10/20 8:43:03
まだちゃんと読んでないのですが

> 問題となっているのはUpdateの部分で、チェックボックスの値を配列(s_del(i))に渡していますが、チェックされていない場合は値が渡されないため、(i)がエラーになります。

ということなら、ボタンを押した際にチェックの有無を確認すれば良いんじゃないのかな?
あとは、個人的意見ですが、QueryStringを使っていると、その渡される番号、この場合だとIDに無茶な値を指定される可能性があります。

あと
--引用Updateのとこ--

id = Request.QueryString("id")
cus_id = session.sessionID

del = Request.Form("del")
s_del = split(del, ",")

cus_id = Request.QueryString("id")
prod_id = Request.Form("prod_id")
----
はい、上見てください。
単にコピミスかもしれませんが、cus_idがナにもしない間に上書きされてますが問題ありませんか?

いじょ

[4701] Re:チェックボックスのOff時の値を取得して配列に渡したい
投稿者:はまぐりんさん 2004/10/20 23:30:06
ご回答、ありがとうございます!

> ということなら、ボタンを押した際にチェックの有無を確認すれば良いんじゃないのかな?

はい。JavaScriptで試しました。チェックされていない時にも何らかの値を渡したいので、例えば、チェックされているときは"delete"、チェクされていない時は"keep"をCheckboxのValueに入れるようなコードを書いたのですが、うまく動きませんでした。

> あとは、個人的意見ですが、QueryStringを使っていると、その渡される番号、この場合だとIDに無茶な値を指定される可能性があります。

これはどういうことでしょうか??

> あと
> --引用Updateのとこ--
>
> id = Request.QueryString("id")
> cus_id = session.sessionID
>
> del = Request.Form("del")
> s_del = split(del, ",")
>
> cus_id = Request.QueryString("id")
> prod_id = Request.Form("prod_id")
> ----
> はい、上見てください。
> 単にコピミスかもしれませんが、cus_idがナにもしない間に上書きされてますが問題ありませんか?

間違えました。
id = Request.QueryString("id")
cus_id = session.sessionID
この2行が必要なかったです。

ありがとうございます。

[4704] Re:チェックボックスのOff時の値を取得して配列に渡したい
投稿者:Lightningさん 2004/10/21 8:31:52
> ご回答、ありがとうございます!
>
> > ということなら、ボタンを押した際にチェックの有無を確認すれば良いんじゃないのかな?
>
> はい。JavaScriptで試しました。チェックされていない時にも何らかの値を渡したいので、例えば、チェックされているときは"delete"、チェクされていない時は"keep"をCheckboxのValueに入れるようなコードを書いたのですが、うまく動きませんでした。
CheckBox以外だとどうでしょー?
たとえば<input type="hidden">にチェック無の時とチェックありのときに別の値を入れておくとか。

> > あとは、個人的意見ですが、QueryStringを使っていると、その渡される番号、この場合だとIDに無茶な値を指定される可能性があります。
>
> これはどういうことでしょうか??
QueryString、というか、GETで送信しているとURLに?id=1&set=3とかという形で表示されるわけですが、ここに直接 値を書きこむことによってアプリケーションクラッシュをさせるという手法が存在します。
(普通の人はそんなことしませんけどね)
だから私は基本的にGET送信(QueryStringで受ける)はしないようにしています。

[4707] Re:チェックボックスのOff時の値を取得して配列に渡したい
投稿者:はまぐりんさん 2004/10/22 5:19:42

> たとえば<input type="hidden">にチェック無の時とチェックありのときに別の値を入れておくとか。

現在、JavaScripを用いて以下のようにコードを書いています。
cartがフォーム名で、del2がCheckbox名、delが<input hidden>の名前です。これでも動きません。DeleteもKeepも何も飛んできません。

<script language="JavaScript">
<!--//
function check(){
if (document.cart.del2.length){
for(i = 0; i < document.cart.del2.length; i++)
{
if (document.cart.del2[i].checked == true)
document.cart.del.value = "delete";
if (document.cart.del2[i].checked == false)
document.cart.del.value = "keep";
}
}
else{
if (document.cart.del2.checked == true)
document.cart.del.value = "delete";
if (document.cart.del2.checked == false)
document.cart.del.value = "keep";
}
}

// -->
</script>


>
> > > あとは、個人的意見ですが、QueryStringを使っていると、その渡される番号、この場合だとIDに無茶な値を指定される可能性があります。
> >
> > これはどういうことでしょうか??
> QueryString、というか、GETで送信しているとURLに?id=1&set=3とかという形で表示されるわけですが、ここに直接 値を書きこむことによってアプリケーションクラッシュをさせるという手法が存在します。
> (普通の人はそんなことしませんけどね)
> だから私は基本的にGET送信(QueryStringで受ける)はしないようにしています。

ええー!そう言われてみれば、そうですね!がーん。大ショックです。QueryStringを使わないとなると、何で渡すんでしょう?

[4726] Re:チェックボックスのOff時の値を取得して配列に渡したい
投稿者:Lightningさん 2004/10/29 11:35:08
なんか解決してたので忘れてましたが、私が書いたレスでの解決してない点がありましたね

> > > > あとは、個人的意見ですが、QueryStringを使っていると、その渡される番号、この場合だとIDに無茶な値を指定される可能性があります。
> > >
> > > これはどういうことでしょうか??
> > QueryString、というか、GETで送信しているとURLに?id=1&set=3とかという形で表示されるわけですが、ここに直接 値を書きこむことによってアプリケーションクラッシュをさせるという手法が存在します。
> > (普通の人はそんなことしませんけどね)
> > だから私は基本的にGET送信(QueryStringで受ける)はしないようにしています。
>
> ええー!そう言われてみれば、そうですね!がーん。大ショックです。QueryStringを使わないとなると、何で渡すんでしょう?
<form method="GET">だとQueryStringで受信しますが<form method="POST">だとformで取ります。
<form method="POST">
<input name="H1" value="test" type="hidden">
見たいな感じだと
Request.form("H1")にtestと言うのが入ると言った感じです。

あと、ふと思ったのですが、カートの中身のデータはSessionで持たせればKEEPするものの情報は送信する必要がないはずですよね?
だから、削除するもののキーだけを受取れれば良いので、そのキーをCheckBoxのValueに仕込んでおけば削除するものは特定できるのでこれをもとにSessionで持っているカートの中身をメンテすれば良いのではないでしょうか?

[4699] Re:チェックボックスのOff時の値を取得して配列に渡したい
投稿者:暇人さん 2004/10/20 14:03:08
> おっしゃるとおりですね。
> 大変失礼しました。
> それでは、長いですが、先頭から必要な部分まで、全部添付します。製品一覧は別ファイルになっており、カートの中身を表示する部分からこのファイルです。
>
> 問題となっているのはUpdateの部分で、チェックボックスの値を配列(s_del(i))に渡していますが、チェックされていない場合は値が渡されないため、(i)がエラーになります。
>
> 宜しくお願いします。

・・・ソースみましたが。これを書ける人がこんなことで悩むとは思えないのですが。思い込みってやつでしょうか?
s_del()はdelをsplitしたものですから
delを取得する際に、なにもなければ最後まですっ飛ばせばいいだけですね。
チェックがないならDELETE必要ないですし。
でも、その前にクライアントサイドスクリプトでチェックして何もチェックしてなければsubmitさせないようにすればいいですね。

[4702] Re:チェックボックスのOff時の値を取得して配列に渡したい
投稿者:はまぐりんさん 2004/10/20 23:48:24

> ・・・ソースみましたが。これを書ける人がこんなことで悩むとは思えないのですが。思い込みってやつでしょうか?
嬉しいです。えへへ。。。って言ってる場合じゃないですね。ほんとにできないんです。

> s_del()はdelをsplitしたものですから
> delを取得する際に、なにもなければ最後まですっ飛ばせばいいだけですね。

はい。そうなんですが、とりあえず、チェックされている項目の値がちゃんと渡されているかどうかを調べるために、削除機能をけして、s_del(i)の値を表示させてみたところ、値がうまく渡されていませんでした。
例えばカートの中に3つ商品が入っていて、2個目にチェックをつけると、1個目の商品には値が入らないので、チェックの値が繰り上がって2個目ではなく1個目についてしまっているように思うのです。
つまり、配列で
s_del(0) = ""
s_del(1) = "on"
s_del(2) = ""
となるべきところが、
s_del(0) = "on"
s_del(1) = ""
s_del(2) = ""
になってしまっているようなのです。

ですので、チェックされない場合にもなんらかの値を渡したいのですが、JavaScriptでチェックされた場合は"delete"を、チェックされていない場合は"keep"をCheckboxの値に代入しようとしたのですが、うまく動きませんでした。

> チェックがないならDELETE必要ないですし。
> でも、その前にクライアントサイドスクリプトでチェックして何もチェックしてなければsubmitさせないようにすればいいですね。
>

「更新する」ボタンを押すと、削除と共に、数量の変更も同時に行うようにしてます。ですので、削除のチェックがなくてもSubmitはさせたいのです。

やっぱり何か思い込んでますでしょうか?
何度もすみませんが、宜しくお願いします。


[4703] Re:チェックボックスのOff時の値を取得して配列に渡したい
投稿者:暇人さん 2004/10/21 0:35:18

>とりあえず、チェックされている項目の値がちゃんと渡されているかどうかを調べるために、削除機能をけして、s_del(i)の値を表示させてみたところ、値がうまく渡されていませんでした。
> 例えばカートの中に3つ商品が入っていて、2個目にチェックをつけると、1個目の商品には値が入らないので、チェックの値が繰り上がって2個目ではなく1個目についてしまっているように思うのです。
> つまり、配列で
> s_del(0) = ""
> s_del(1) = "on"
> s_del(2) = ""
> となるべきところが、
> s_del(0) = "on"
> s_del(1) = ""
> s_del(2) = ""
> になってしまっているようなのです。

確かに、何もvalueがないときは詰められちゃいますから。
この方法では実装不可能ですね。Onが配列1と2にあっても詰まってしまって0と1にOnがあるようになりますね。

・・・ん?なんでなにもない値が飛ぶんだ?よく考えたら「keep」が飛んでくるはず・・・

<!--//
function check(){
if (document.cart.del.checked == ture)
document.cart.del.value = "delete";
if (document.cart.del.checked == false)
document.cart.del.value = "keep";
}
こいつが駄目っぽい

>
> ですので、チェックされない場合にもなんらかの値を渡したいのですが、JavaScriptでチェックされた場合は"delete"を、チェックされていない場合は"keep"をCheckboxの値に代入しようとしたのですが、うまく動きませんでした。

そうですね。つーわけで(なにがつーわけでなのか判りませんが)

<!--//
function check(){
if (document.cart.del.length){
for(i = 0; i < document.cart.del.length; i++)
{
if (document.cart.del[i].checked == ture)
document.cart.del.value = "delete";
if (document.cart.del[i].checked == false)
document.cart.del.value = "keep";
}
}
else{
if (document.cart.del.checked == ture)
document.cart.del.value = "delete";
if (document.cart.del.checked == false)
document.cart.del.value = "keep";
}
}

初めのif文で、複数なのか1個しかないのか判断
複数の場合は配列をループでまわしてvalue設定
1個しかないならそれにvalue設定
配列の場合と1個の場合で切り分ける必要があるんでめんどくさいんです。・・・多分これでうまくいくと思う

[4706] Re:チェックボックスのOff時の値を取得して配列に渡したい
投稿者:はまぐりんさん 2004/10/22 5:16:37

> <!--//
> function check(){
> if (document.cart.del.length){
> for(i = 0; i < document.cart.del.length; i++)
> {
> if (document.cart.del[i].checked == ture)
> document.cart.del.value = "delete";
> if (document.cart.del[i].checked == false)
> document.cart.del.value = "keep";
> }
> }
> else{
> if (document.cart.del.checked == ture)
> document.cart.del.value = "delete";
> if (document.cart.del.checked == false)
> document.cart.del.value = "keep";
> }
> }
>
> 初めのif文で、複数なのか1個しかないのか判断
> 複数の場合は配列をループでまわしてvalue設定
> 1個しかないならそれにvalue設定
> 配列の場合と1個の場合で切り分ける必要があるんでめんどくさいんです。・・・多分これでうまくいくと思う


コードとご説明を書いていただいて、ありがとうございます。
これで試してみましたが、だめでした。。。
どうしてもKeepが飛んできません!

こういう場合。CheckboxにはValueをしておかなくてもいいですよね?
どちらも試してみましたが、だめでした。
今、コードは以下のようになっています。(u_id(i)とs_del(i)の値を表示するようにしてあります。)
<input hidden>で値を渡すにしてみたんですが、DeleteもKeepも何も飛んできません。。。
ちなみに、<input hidden>を使わずに<checkbox>だけでも試してみましたが、だめでした。

<script language="JavaScript">
<!--//
function check(){
if (document.cart.del2.length){
for(i = 0; i < document.cart.del2.length; i++)
{
if (document.cart.del2[i].checked == true)
document.cart.del.value = "delete";
if (document.cart.del2[i].checked == false)
document.cart.del.value = "keep";
}
}
else{
if (document.cart.del2.checked == true)
document.cart.del.value = "delete";
if (document.cart.del2.checked == false)
document.cart.del.value = "keep";
}
}

// -->
</script>

<tr>
<td height="5" colspan="2">
<div align="right"><font size="2" face="MS Pゴシック, Osaka"><a href="mail_order_top.asp"><br>
メールオーダートップ</a> | <a href="mail_order_special.asp">特売品コーナー</a> | <a href="mail_order.asp?act=checkout&id=<%= cus_id %>">チェックアウト</a>
</font></div>
</td>
</tr>
<tr valign="top">
<td height="217" colspan="2">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3" height="16"><img src="Pic/MailOrder/ShoppingCart/shopping_cart_title.gif" width="762" height="67"></td>
</tr>
<tr valign="top">
<td height="266" colspan="3"><font size="2" face="MS Pゴシック, Osaka"><br>
<br>
お客様のショッピングカートの中身は下記の通りです。</font><br>
<br>

<form method="post" action="mail_order.asp?act=update&id=<%= ObjRS("cus_id") %>" name="cart">
<table width="760" bordercolor="#666666" border="1" cellspacing="0">
<tr>
<td width="33" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">削除</font></div>
</td>
<td width="58" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">商品番号</font></div>
</td>
<td width="395" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">商品名</font></div>
</td>
<td width="35" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">個数</font></div>
</td>
<td width="63" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">単価</font></div>
</td>
<td width="72" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">重量</font></div>
</td>
<td width="74" height="10" nowrap>
<div align="center"><font size="2" face="MS Pゴシック, Osaka">合計金額</font></div>
</td>
</tr>

<%
Do Until ObjRS.eof

If ObjRS("special") = "1" then
color = "#ff0000"
else
color = "#000000"
end if

%>
<tr>
<td width="33" height="18">
<div align="center">
<input type="checkbox" name="del2">
</div>
</td>

<td width="58" height="18"><font size="2"><%= ObjRS("prod_num") %></font></td>
<td width="395" height="18"><font size="2"><%= ObjRS("prod_name") %></font></td>
<td width="35" height="18" align="left">
<div align="center" align="left">
<font size="2"><input type="text" name="qty" size="4" maxlength="4" value="<%= ObjRS("qty") %>"></font>
</div>
</td>
<td width="63" height="18" align="right"><font size="2" color="<%= color %>">$<%= ObjRS("unit_price") %></font></td>
<td width="72" height="18" align="center"><font size="2"><%= ObjRS("total_wei") %> Lbs</font></td>
<td width="74" height="18" align="right"><font size="2" color="<%= color %>">$<%= FormatNumber(ObjRS("total_price")) %></font></td>
</tr>
<input type="hidden" name="del">
<input type="hidden" name="prod_id" value="<%= ObjRS("id") %>">
<input type="hidden" name="prod_num" value="<%= ObjRS("prod_num") %>" >
<input type="hidden" name="prod_name" value="<%= ObjRS("prod_name") %>" >
<input type="hidden" name="unit_price" value="<%= ObjRS("unit_price") %>" >
<input type="hidden" name="wei" value="<%= ObjRS("wei") %>" >
<input type="hidden" name="total_price" value="<%= ObjRS("total_price") %>">
<input type="hidden" name="category" value="<%= ObjRS("category") %>">

<%

total_price = ObjRS("total_price")
t_t_price = FormatNumber(t_t_price + total_price, 2)

ObjRS.MoveNext
Loop

<tr>
<td colspan="6" align="right"><font size="2">小合計金額</font></td>
<td align="right"><font size="2">$<%= t_t_price %></font></td>
</tr>
<%
ObjRS.Close
Set ObjRS = Nothing

ObjConn.Close
Set ObjConn = Nothing

Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
Server.Mappath("../Data/mail_order.mdb")

Set ObjRS = Server.CreateObject("ADODB.Recordset")
StrSQL = "select * from shopping where cus_id=" & cus_id
ObjRS.Open StrSQL, ObjConn

%>
</table>
<table width="760" border="0">
<tr>
<td align="right" width="530"><input type="image" src="pic/mailorder/update.jpg" name="act" onClick = "check()"></td>
</form>

<form method="post" action="mail_order_top.asp">
<td align="right" width="130"><input type="image" src="pic/mailorder/shopping.jpg" name="act"></td>
</form>

<form method="post" action="mail_order.asp?act=checkout&id=<%= ObjRS("cus_id") %>">
<td align="left" width="100"><input type="image" src="pic/mailorder/checkout.jpg" name="act"></td>
</form>
</tr>
</table>
</td>
</tr>
</table>

<%
end if
%>

</td>
</tr>
<tr>
<td height="71" colspan="2">
<div align="center"><font size="2" face="MS Pゴシック, Osaka"><a href="mail_order_top.asp">メールオーダートップ</a>
| <a href="mail_order_special.asp">特売品コーナー</a></font><br>
</div>
<hr align="center">
</td>
</tr>


<%
ObjRS.Close
Set ObjRS = Nothing

ObjConn.Close
Set ObjConn = Nothing

End Sub




' カートの中身を更新

Sub Update

Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
Server.Mappath("../Data/mail_order.mdb")


cus_id = Request.QueryString("id")

del = Request.Form("del")
s_del = split(del, ",")

prod_id = Request.Form("prod_id")
u_id = split(prod_id, ",")
qty = Request.Form("qty")
u_qty = split(qty, ",")
wei = Request.Form("wei")
u_wei = split(wei, ",")
unit_price = Request.Form("unit_price")
u_unit_price = split(unit_price, ",")


for i = 0 to UBound(u_id)

Response.Write u_id(i) & "<br>"
Response.Write s_del(i) & "<br>"

Set ObjRS = Server.CreateObject("ADODB.Recordset")
StrSQL = "select * from shopping where cus_id =" & cus_id & " and id = " & u_id(i)
ObjRS.Open StrSQL, ObjConn, 3, 3

ObjRS("qty") = u_qty(i)
ObjRS("wei") = u_wei(i)
ObjRS("total_wei") = FormatNumber(u_wei(i) * u_qty(i))
ObjRS("total_price") = FormatNumber(u_unit_price(i) * u_qty(i),2)
ObjRS("tax") = ObjRS("total_price") * tax_rate
ObjRS.Update



Next



ObjRS.Close
Set ObjRS = Nothing

ObjConn.Close
Set ObjConn = Nothing


End Sub
%>

何度も何度も申し訳ありませんが、宜しくお願いします。

[4708] Re:チェックボックスのOff時の値を取得して配列に渡したい
投稿者:暇人さん 2004/10/22 9:44:00
<!--//
function check(){
if (document.cart.del.length){
for(i = 0; i < document.cart.del.length; i++)
{
if (document.cart.del[i].checked == ture)
//[i]つけるの忘れてた
document.cart.del[i].value = "delete";
if (document.cart.del[i].checked == false)
//ここの所に無理やりチェック機能追加、[i]もつける
document.cart.del[i].checked;
document.cart.del[i].value = "keep";
}
}
else{
if (document.cart.del.checked == ture)
document.cart.del.value = "delete";
if (document.cart.del.checked == false)
document.cart.del.value = "keep";
//チェックする。
document.cart.del.checked;
}
}

よく考えてみたらチェックしないとValue飛んでこないですね。
・・・で、無理やりチェックしてみました。
なんかカッコ悪いなあ

と言うわけで例えばこんな風にしたらどうでしょう
<!--//
function check(){
if (document.cart.del.length){
for(i = 0; i < document.cart.del.length; i++)
{
if (document.cart.del[i].checked == ture)
document.cart.del[i].value = i;
}
}
else{
if (document.cart.del.checked == ture)
document.cart.del.value = "0";
}
}
こうすると0番目と2番目にチェックしたら
del = "0,2"
ととんでくるのでupdate関数を多少手直しすればOKかと思います。

[4709] Re:チェックボックスのOff時の値を取得して配列に渡したい
投稿者:暇人さん 2004/10/22 9:50:56
>
> と言うわけで例えばこんな風にしたらどうでしょう
> <!--//
> function check(){
> if (document.cart.del.length){
> for(i = 0; i < document.cart.del.length; i++)
> {
> if (document.cart.del[i].checked == ture)
> document.cart.del[i].value = i;
> }
> }
> else{
> if (document.cart.del.checked == ture)
> document.cart.del.value = "0";
> }
> }
> こうすると0番目と2番目にチェックしたら
> del = "0,2"
> ととんでくるのでupdate関数を多少手直しすればOKかと思います。
>

あおーん(泣)。よく考えたら上記の方法ならわざわざjavaScript使わなくてもいい。あらかじめcheckboxのvalueに番号振っておけば
checkしたものだけとんでくるからそれでいいや。
後はSUB関数updateを手直ししてやればOKです。
・・・送信してから気付いてやんの

[4710] Re:チェックボックスのOff時の値を取得して配列に渡したい
投稿者:はまぐりんさん 2004/10/23 6:41:32
わぁーーーーーーーい!!!
動きました!!!!!!
ほんっとにありがとうございました。
根気よく教えていただいたお陰です!

でも以下のCheckboxのValueに番号振るって言うのがわからなくて、結局JavaScriptを使ってるんですけど。。。

とにもかくにもめちゃめちゃ嬉しいです。今夜は祝杯☆

ほんとうにありがとうございました!


> あおーん(泣)。よく考えたら上記の方法ならわざわざjavaScript使わなくてもいい。あらかじめcheckboxのvalueに番号振っておけば
> checkしたものだけとんでくるからそれでいいや。
> 後はSUB関数updateを手直ししてやればOKです。
> ・・・送信してから気付いてやんの



TreeBBS For ASP V.0.1.3
Program By YasNet