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

[4299] 追加ボタンを押していくことによりセレクトボックスにデータを追加
投稿者:karyさん 2004/05/24 11:48:18
いつも拝見させていただいております。処理の仕方がわからない所があるので
教えていただきたいのですが。
メール送信リストを作成しているのですが、複数の送信先を登録する処理をしたいのです。
まずテキストボックスがありまして、そこにアドレスを手入力し、隣の「追加」ボタンを押すと
その横のセレクトボックス(1)に追加されていくという処理にしようとしています。
入力を何回もすることによって送信先をリストに溜めていくという感じです。
さらに、テキストボックスだけではなくて別にセレクトボックス(2)を作り、その中の項目を選ぶと
DBから引っ張ってきたアドレスがさらに別のセレクトボックス(3)に表示されます。
たとえば「グループ」のセレクトボックス(2)に「A」「B」「C」の項目があったとして、
「A」を選ぶとAのグループのアドレスがDBから引っ張られて、別のセレクトボックス(3)に表示され、
その中の1つを選択して「追加」を押すと、セレクトボックス(1)に追加していくということです。
手入力と選択ボックスの両方から追加できるようにしたいのです。
そこで、入力or選択してセレクトボックス(1)に溜めていくという処理はなんとか作成できたのですが、
問題は「グループ」の項目でグループを選んだ瞬間にリスト一覧が(一瞬だけ)消えてしまうということなのです。
その後にアドレスを選んで「追加」を押すと今まで選んだ一覧が再び表示されるのですが、選んだ瞬間だけ
消えてしまうのが困っています。これを選んだ瞬間も表示されたままにさせておく処理を教えていただきたいです。
主にPOSTしてデータを渡しています。Javascriptはあまり使わずASPでやる方法を知りたいのですが・・
ソースを一部書きます。(簡略化しています)

<select name="mailaddress">
<% If mailad="" and mailad2="" Then %>
(*mailadは手入力されたアドレス  mailad2はセレクトボックスで選択されたアドレス
<option value="指定なし">--------------指定されていません--------------
<% Else %>
<% If Request.Form("sub1")<>"" or Request.Form("sub2")<>"" Then %>
(*sub1は手入力からの追加ボタン、sub2はセレクトボックス(3)からの追加ボタン )
<% dim mailadArr '配列
dim i
mailadArr=FromSession()  'Sessionから配列に戻す関数
Redim preserve mailadArr(UBound(mailadArr)+1)
  If Request.Form("sub1")<>"" Then
mailadArr(UBound(mailadArr))=mailad
End If
If Request.Form("sub2")<>"" Then
mailadArr(UBound(mailadArr))=mailad2
End If
Call ToSession()  '配列からSessionにいれる関数
For i=0 to Ubound(mailadArr)
%>
<option value="<% =mailadArr(i) %>"><% =mailadArr(i) %>
<% Next %>
<% End If %>
<% End If %>
  </select>
<input type="submit" name="sub1" value=" 追加 ">
<input type="text" name="mailad" size="54">
グループ
<select name="choose_group"
onChange="submit();return true"> グループが選択されたらそのアドレスを表示させる処理
  <option value="<%=ObjRS("グループ") %>ObjRS("グループ")
</select>
<input type="submit" name="sub2" value=" 追加 ">
<select name="mailad2">
<%
rs_group=Request.Form("choose_group")
If rs_group<>"" Then
StrSQL="select メールアドレス from 名簿 "
StrSQL=StrSQL & " where ((名簿.グループ)='" & rs_group & "')"
Set ObjRS=ObjConn.Execute(StrSQL) (DBからひっぱる)
 If not ObjRS.EOF Then
Do While not ObjRS.EOF %>
<option value="<%=ObjRS("メールアドレス") %>"><% =ObjRS("メールアドレス") %>
<% ObjRS.MoveNext
Loop
End If
End If
%>
</select>

<%     
Function FromSession() 'Sessionから配列に戻す関数
'mailadArrLocal=Session("storedArray")
FromSession=Session("storedArray")
End Function

Sub ToSession() '配列からSessionにいれる関数
Session("storedArray")=mailadArr
End Sub
%>

どなたかご教授いただけますでしょうか。

追加ボタンを押していくことによりセレクトボックスにデータを追加   karyさん [2004/05/24 11:48:18] [4299]
  Re:追加ボタンを押していくことによりセレクトボックスにデータを追加   YasNet(管理人)さん [2004/05/24 19:44:10] [4301]
    Re:追加ボタンを押していくことによりセレクトボックスにデータを追加   karyさん [2004/05/26 18:53:26] [4309]
      Re:追加ボタンを押していくことによりセレクトボックスにデータを追加   YasNet(管理人)さん [2004/05/29 19:16:33] [4313]


TreeBBS For ASP V.0.1.3
Program By YasNet