お世話になっております。
わたしは、以前からの続きでDBの構築をSAVERはsql2000、ColdFusionとjsを使って社内WEBを構築しております。
そこで、皆様のお力をお借りしたいのですがよろしくお願いいたします。
それは、普通(?)でしたら、社員名簿と1件づつINPUTしていくのが、開発していく上では楽なのですが、担当者が、部署ごとに一気に15件を入力してまとめてINPUTできるようにして欲しいと依頼され、困って降ります。
そこで、配列を使って入力すればいいのかと思い、coldfusionのリファレンスを見たのですがよく分かりません^^;
そこで、どういうロジックで配列を組んでいけばよいか、どなたか教えてください。
項目は、一番上に「部署」フィールドがありそこの一箇所に入力します。
そして、下には15件分のデータを入力するフィールドが存在し、「氏名」「役職」「E-Mail」「tel」の項目があります。登録ボタンを押すと全てのレコードがDBに落ちるようにしたいのですが、どのようにしたらよろしいのかお願いいたします。
長文になってしまい、申し訳ございませんm(_ _)m

このQ&Aに関連する最新のQ&A

A 回答 (1件)

そこまで仕様が決まっているのであれば、そのまま作ればできると思いますけど。

(笑)
15件の部分をどうSQLにセットすればいいかがわからないってことでしょうか?

一番簡単な方法でしたら、
1.15件の入力フィールドのそれぞれの名前を同じにする。
 (例えば、Telを入力するフィールドは15件すべて"strTel"というNameを付ける)
2.全部がキチンと入力されているかを、JavaScriptでチェック
3.OKだったら、アクションページへSubmit
4.アクションページで変数を取得
5.取得した変数は、同じ名前だとカンマ区切りの変数になっているので、それをListToArray関数を使って配列化する。
6.配列のレングス分、SQLをループで回す。

という手順でしょうか?

1.で複数のテキストボックスに同じ名前を付けると、4.のところで取得する変数は
Form.strHensu=1,2,3,4,5
という形の受け取りになるんですね。
ですので、その変数を配列化します。
リストを配列にするには、ListToArrayを使います。
上記の変数ですと、
<CFSET setArray=ArrayNew(1)> <--- 配列を作成
<CFSET setArray=ListToArray(Form.strHensu)> <--- 配列にセット
とすると、setArrayという配列の中に、カンマ区切りの値が一つづつ格納されます。
そして、最後にSQLをこの配列分回してやればいいわけです。
<CFLOOP INDEX="i" FROM="1" TO="#ArrayLen(setArray)#">
 <CFQUERY ~>
   実行するINSERT SQL
   この時、セットする変数を、
   setArray[#i#]
   で指定してあげればいいです。
   外側を#でくくらなければいけないときはEvaluate関数を使います。
   #Evaluate("setArray[#i#]")#
 </CFQUERY>
</CFLOOP>
これで、15件分のデータを一気に書き込めます。

他のやり方もありますよ。
例えば、フォームの内容を書き出すときにすでに<CFLOOP>を使って、番号付きの名前のフィールドを自動生成して、SQLもそれをつかうとか。
・・・って、文字で書くとややこしいですけど、こちらも簡単です。配列使わなくて済みます。
速度的には配列を使った方が早いかもしれないけど、15件程度なら大した差はないでしょう。

ちなみにもっと大量のデータであれば、既存のCSVファイルを作成して、<CFHTTP>タグを使ってファイル毎uploadって事もできます。
こちらの方法であれば、100件単位でも可能です。
(ただ、この方法を文章で教えろといわれても、できかねますが・・・。(^^;;)

参考URLにオンラインマニュアルのURLを載せておきます。
上記のタグも関数も載っていますので、参考になさってください。
がんばってくださいね~。

参考URL:http://202.33.114.61/docs/CFML_Language_Referenc …

この回答への補足

お世話になっておりますm(_ _)m
アドバイスいただきましたようにリファレンスをみながらがんばっているのですがいくつか、分からないところがありますのでよろしくお願いいたします。
(1)strTelというのがsabmitされたときにFORM.strHensuというのは、strTelに対応しているのでしょうか?
(2)他の項目も同じ手順で繰り返してsetしていけばいいのでしょうか?同じようにしてみたりしたのですが、うまくいかず頭が爆発しそうです(><)
できましたならば、cfloop間のロジックを私にでもわかるようにお願いしたいのですが・・・すみません、生意気いってm(_ _)m
なにとぞよろしくお願いします。

補足日時:2001/08/23 15:35
    • good
    • 0
この回答へのお礼

ありがとうございます。
あれからとにかくこうしてみようと思って組んでいきましたら完成することができました。これからも、自分で考えた上で分からないことが出ましたら投稿させていただきますのでよろしくお願いします。
ほんとに、ありがとうございました。

お礼日時:2001/08/23 16:23

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qエクセルを使用してHPの入力項目に入力する方法

初めまして。
エクセルを使用してHPの記入項目に文を入力する方法をご存知の方(そういったソフトでも構いません)いらっしゃいませんか?
何通りもあるのでエクセルを使用したいと思っております。

どうか、ご教授お願い致します。

Aベストアンサー

簡単なサンプルを紹介します。
サンプルはGoogleを開いて「油淋鶏」と入力して、検索(サブミット)します。

下準備
[Alt]+[F11]でVBを開き、[ツール]→[参照設定]
Microsoft Internet Controls
Microsoft HTML Object Library
この2つにチェックしましょう。

----以下サンプル----
Const URL = "http://www.google.co.jp/"
Const InputName = "q" '入力するInputの名前
Const InputValue = "油淋鶏" '入力するデータ
Const FormName = "f" '送信するFormの名前

Sub sample()
 Dim AppIE As InternetExplorer
 Dim Doc As HTMLDocument
 Dim obj As Variant
 
 'IEを起動して表示する
 Set AppIE = CreateObject("InternetExplorer.application")
 AppIE.Visible = True
 'URLを開く
 AppIE.Navigate URL
 '完了するまで待つ
 wait_ie AppIE
 'Documentを取得する
 Set Doc = AppIE.Document
 'Inputにデータを入力する
 For Each obj In Doc.getElementsByTagName("input")
  If obj.Name = InputName Then
   obj.Value = InputValue
  End If
 Next
 'Formを送信する
 For Each obj In Doc.forms
  If obj.Name = FormName Then
   obj.submit
   Exit For
  End If
 Next
 '完了するまで待つ
 wait_ie AppIE
 
 'IEを終了するなら下を行のコメントをはずす
 'AppIE.Quit
End Sub

'IEの処理が終了するのを待つサブルーチン
Sub wait_ie(AppIE As InternetExplorer)
 Do Until AppIE.ReadyState >= READYSTATE_COMPLETE
  DoEvents
 Loop
 Do While AppIE.Busy
  DoEvents
 Loop
End Sub
----以上サンプル----

簡単なサンプルを紹介します。
サンプルはGoogleを開いて「油淋鶏」と入力して、検索(サブミット)します。

下準備
[Alt]+[F11]でVBを開き、[ツール]→[参照設定]
Microsoft Internet Controls
Microsoft HTML Object Library
この2つにチェックしましょう。

----以下サンプル----
Const URL = "http://www.google.co.jp/"
Const InputName = "q" '入力するInputの名前
Const InputValue = "油淋鶏" '入力するデータ
Const FormName = "f" '送信するFormの名前

Sub sample()
 Dim AppIE As I...続きを読む

QDBとサイト構築

初心者なんですが仕事内容にDBを使ったサイト構築と
書いてあったんですがどのような事をするのでしょうか?
DBはアクセスでしょうか?
解りやすいサイトなども教えていただけるとありがたいです。
初心者なのでよろしくおねがいします。

Aベストアンサー

がると申します。
えと…「初心者」と「仕事内容」という単語にちと乖離を感じてはいるのですが…おいといて。

まずDBそのものについては
http://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9
で。
RDBの概論は省略するとして、DBMSについては
http://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0
をご一読ください。

QColdFusion

ColdFusionMX7 という動的サイト開発ソフトがありますが、自分はWEBデザイナーとして、+aで、システム構築知識を身につけようと、PHPとPOSTGRESQLの勉強をしようかと思っていた矢先に、このソフトの存在をしりました。PHPよりかんたんで、使いやすいとのことですが、関連書籍もほとんどでまわってまいですし、なぜ不人気(人気かもしれませんが)なのかがわかりません。PHPとくらべて、メリット、デメリットはなんでしょう?データベースとの連携もいいそうですが、PHPとくれべてみればいかがなものなんでしょうか?また、お客様から動的サイトを作成してくれとい案件があった時、PHPでお願いします なんていうことはあるのでしょうか?このソフトについて色々詳しい方はお教え下さい。

Aベストアンサー

CFMXユーザです。
CFがMXになったのは、6.0で6.1、7.0と
バージョンアップされました。
HTML・SQLの知識があれば、基本的なHP
は用意に作成できます。
また、ユーティリティも、カスタムタグとして
有識者がフリーで提供しています。
イベント処理は、JavaScriptで対応しています。
また、複数ページにわたり共有するデータを持つ
ことも可能ですし、ループ変数などローカル変数
の定義も可能です。
MX7.0からは、PDF出力も可能になりました。
CF専用のメーリングリスト・BBSもあります。
カスタムタグを利用すれば、Excelファイルを作成
することも可能です。
PHPに比べ、覚えるべき項目は多いかもしれません
が、実行可能な機能が多いのも魅力です。
またCFMX7.0そのものは、試用版もあります。

参考URL:http://www.coldfusionlab.com/index.cfm

QColdFusionのGRIDについて

ColdFusion5.0を最近使いはじめました。
いろいろな機能をペルプを見ながら勉強しています。
GRIDの使い方を色々試していたのですが、
CFGRIDCOLUMN に、NAMEってありますよね??
そこにTABLEのフィールド名を入れて表示させたのですが、
どうも日付の表示が「2001-10-01 00:00:00」のようになってしまいます。
表示形式を変える事ってできないのでしょうか??
それと、GRIDにはTABLEのデータを表示する事しかできないのでしょうか??
(↑例えば、変数の値をセットするとか・・・)
質問の仕方が上手くなくて申し訳ないですが、よろしくお願い致します。

Aベストアンサー

CFの場合日付の初期表示は「2001-10-01 00:00:00」の形式になります。
CFGRIDを使ったことがないので、ハッキリとはわからないのですが、手元のヘルプで調べたところ<CFGRID>でクエリーを指定して、<CFGRIDCOLMN>でクエリーのカラム名を指定するだけのようですね。
だとしたらたぶん、クエリーで値を取得する時に、「yyyy/mm/dd」等に変換しておかないと行けないと思います。(関数はDBによって異なりますので、ヘルプ等でお調べ下さい)

通常、日付データを変換して普通に表示する場合は、CFのDateFormat関数を使います。
DateFormat(変換する値,"形式(yyyy/mm/dd等)")
で、変換可能です。

がんばってください。(^-^)

QColdFusionにて

今、ColdFusionの開発をしています。
http://quiq.fsol.co.jp/sample/hts030we/caption.htmの
サンプルのような、POPUPを自前で作成したいのですが
ソースがあまりソースが公開されておらずうまく出来ずにいます。

どんなことでもかまいませんので、いいサイト、方法知っている方
教えてください。
できるだけ、JavaScriptの使用はさけています。

Aベストアンサー

サンプルページのソースを見ると使われているのはJavaScriptですね。
IEで全て保存を選ぶとJavaScirptファイルも保存されるので見てください。
処理的には難しくないのですが、記述が結構解りにくいので解読するにはちょっと時間がかかりますね。
JavaScriptは使えないとなるとVBScriptとなります。
まあ、JavaScriptもVBScriptも使用条件や環境は似たようなものなのでこれも使えないかな?。
しかもIE限定ですしね。
とりあえず、VBScriptのリファレンスやサンプルです。
http://www.interq.or.jp/student/exeal/dss/ref/vbscript/top.html
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/vtoriVBScript.asp
http://www2.interbroad.or.jp/naoya/vbscript.html
http://plaza14.mbn.or.jp/~hiro628/prg/prgv00vbscript.htm

JavaScriptのリンク
http://tohoho.wakusei.ne.jp/js/index.htm
http://www.openspc2.org/JavaScript/
http://www.st.rim.or.jp/~makoto3/js_sample/sample0000.shtml
http://allabout.co.jp/computer/javascript/

サンプルページのソースを見ると使われているのはJavaScriptですね。
IEで全て保存を選ぶとJavaScirptファイルも保存されるので見てください。
処理的には難しくないのですが、記述が結構解りにくいので解読するにはちょっと時間がかかりますね。
JavaScriptは使えないとなるとVBScriptとなります。
まあ、JavaScriptもVBScriptも使用条件や環境は似たようなものなのでこれも使えないかな?。
しかもIE限定ですしね。
とりあえず、VBScriptのリファレンスやサンプルです。
http://www.interq.or.jp/student...続きを読む


人気Q&Aランキング

おすすめ情報