ユーザーが [Add] ボタンをクリックすると、引数が渡されずに "maintenanceaction.cfm" ページから "tripedit.cfm" ページに移動することに注意してください。逆に、ユーザーが [Edit] ボタンをクリックすると、Trip Edit ページから現在のレコード ID が渡されます。Trip Edit ページはどちらの場合も処理しなければなりません。URL に RecordID が渡された場合、"tripedit.cfm" でデータベースのクエリーを実行し、対応する旅行のデータをフォームに入力する必要があります。
cfquery ブロックの後に次のコードを入力するか、コピー & ペーストします。
<cfif IsDefined("URL.ID")>
<cfquery name="TripQuery" datasource="CompassTravel" maxrows="1">
SELECT tripName, eventType, tripDescription, tripLocation,
departureDate, returnDate, price, tripLeader, photo, baseCost,
numberPeople, depositRequired, tripID
FROM trips
<cfif IsDefined("URL.ID")>
WHERE tripID = #url.ID#
</cfif>
</cfquery>
<!-- ローカル変数の設定 -->
<cfset tripName = '#TripQuery.tripName#'>
<cfset eventType = '#TripQuery.eventType#'>
<cfset tripDescription = '#TripQuery.tripDescription#'>
<cfset tripLocation = '#TripQuery.tripLocation#'>
<cfset departureDate = DateFormat(#TripQuery.departureDate#,
"mm/dd/yyyy")>
<cfset returnDate = DateFormat(#TripQuery.returnDate#,"mm/dd/yyyy")>
<cfset price = #TripQuery.price#>
<cfset tripLeader = '#TripQuery.tripLeader#'>
<cfset photo = '#TripQuery.photo#'>
<cfset baseCost = #TripQuery.baseCost#>
<cfset numberPeople = #TripQuery.numberPeople#>
<cfif isDefined("TripQuery.depositRequired")>
<cfset depositRequired = 'Yes'>
<cfelse>
<cfset depositRequired = 'No'>
</cfif>
<cfelse>
<cfset tripName = ''>
<cfset tripDescription = ''>
<cfset eventTypeIdentifier = #GetEvents.eventType#>
<cfset tripLocation = ''>
<cfset departureDate = ''>
<cfset returnDate = ''>
<cfset price = ''>
<cfset tripLeader = ''>
<cfset photo = ''>
<cfset baseCost = ''>
<cfset numberPeople = ''>
<cfset depositRequired = 'Yes'>
</cfif>
メモ: ユーザーが [Add] ボタンをクリックすると、現在表示されている旅行の詳細の値がフォームに表示されます。これ以外の場合、イベントタイプフィールドの値を除くすべての値が空白で表示されます。
| コード | 説明 |
|---|---|
<TD><cfinput name= "tripName"
maxlength = "50"
size = "50"
required = "Yes"
|
ID が定義されていない場合には、旅行名の値を空白に設定します。それ以外の場合は、「Trip Detail」ページに表示される旅行名と同じ値を設定します。 |
<TD><cftextarea name="tripDescription"
required="Yes"
message="Trip description must not be blank.">
|
ID が定義されていない場合には、旅行の説明の値を空白に設定します。それ以外の場合は、「Trip Detail」ページに表示される旅行の説明と同じ値を設定します。 |
<td><cfselect size="1" name="eventType" required="Yes"
message="Type of event must be selected.">
<cfoutput query="GetEvents">
<option value= "#GetEvents.eventTypeID#">#GetEvents.eventType#
</option>
</cfoutput>
</cfselect>
</td>
|
イベントタイプの値にイベントリストを設定します。 |
<TD><cfinput size="50" name="tripLocation"
required="Yes"
|
ID が定義されていない場合には、旅行先の値を空白に設定します。それ以外の場合は、「Trip Detail」ページに表示される旅行先と同じ値を設定します。 |
<TD><cfinput name="departureDate"
size="10"
required="Yes"
validate="date"
|
ID が定義されていない場合には、出発日の値を空白に設定します。それ以外の場合は、「Trip Detail」ページに表示される出発日と同じ値を設定します。 |
<TD><cfinput name="returnDate"
size="10"
required="Yes"
validate="date"
|
ID が定義されていない場合には、帰着日の値を空白に設定します。それ以外の場合は、「Trip Detail」ページに表示される帰着日と同じ値を設定します。 |
<TD><cfinput name="numberPeople"
size="6"
required="Yes"
validate="integer"
|
ID が定義されていない場合には、人数の値を空白に設定します。それ以外の場合は、「Trip Detail」ページに表示される人数と同じ値を設定します。 |
<TD><cfinput name="price"
size="10"
required="Yes"
validate="integer"
|
ID が定義されていない場合には、旅行価格の値を空白に設定します。それ以外の場合は、「Trip Detail」ページに表示される旅行価格と同じ値を設定します。 |
<TD><cfinput name="baseCost"
size="10"
required="Yes"
validate="integer"
|
ID が定義されていない場合には、ベースコストの値を空白に設定します。それ以外の場合は、「Trip Detail」ページに表示されるベースコストと同じ値を設定します。 |
<TD><cfinput name="depositRequired"
type="checkbox"
|
ID が定義されていない場合には、必要預託金の値を "Yes" に設定します。それ以外の場合は、「Trip Detail」ページに表示される必要預託金と同じ値を設定します。 |
<TD><cfinput name="tripLeader"
maxlength="50" size="50"
required="Yes"
|
ID が定義されていない場合には、旅行リーダーの値を空白に設定します。それ以外の場合は、「Trip Detail」ページに表示される旅行リーダーと同じ値を設定します。 |
<TD><cfinput name="photo"
maxlength="50" size="50"
required="Yes"
|
ID が定義されていない場合には、フォトの値を空白に設定します。それ以外の場合は、「Trip Detail」ページに表示されるフォトと同じ値を設定します。 |
次の表は、Trip Edit フォームを正しく初期化するために使用されるコードについて説明します。
| コード | 説明 |
|---|---|
<cfif IsDefined("URL.ID")>
<cfquery name="TripQuery" datasource="CompassTravel"... </cfif>
|
ColdFusion の ID が渡されると、この ID は、現在の旅行情報を取り出す SQL の SELECT ステートメントの WHERE 節に使用されます。次に、アプリケーションが SQL クエリーの結果からローカル変数のインスタンスを生成します。 ColdFusion の
ユーザーが [Add] ボタンをクリックして新規旅行を追加する場合、URL 引数として ID は渡されません。この場合、ローカル変数のインスタンスは空白になります。 |
このレッスンでは、テーブルのデータの削除、更新、および追加を実行するために、SQL DELETE ステートメント、cfinsert タグ、および cfupdate タグを使用しました。
ColdFusion MX 7 | ColdFusion MX 6.1 | ColdFusion MX* | ColdFusion 5* | フォーラム* | デベロッパーセンター | サポート情報 | バグ報告
バージョン7
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/coldfusion/7_jp/htmldocs/db_main7.htm