ユーザーがデータベースのレコードを削除できるレコード削除ページを Dreamweaver で作成する方法について説明します。
Dreamweaver 以降では、ユーザーインターフェイスが簡素化されています。 そのため、この記事で説明されているオプションの一部が Dreamweaver 以降には存在しない場合があります。 詳しくは、こちらの記事を参照してください。
レコード削除ページについて
アプリケーションには、ユーザーがデータベースのレコードを削除できるページのセットを含めることができます。ページは通常、検索ページ、結果ページ、および削除ページで構成されます。削除ページは通常、結果ページと連動して機能する詳細ページです。検索ページと結果ページでユーザーがレコードを取得し、削除ページでユーザーがレコードを確認して削除できます。
検索ページと結果ページを作成した後、結果ページに削除ページを開くリンクを追加し、レコードと送信ボタンを表示する削除ページを作成します。
削除するレコードの検索
ユーザーがレコードを削除する場合、まずデータベースでそのレコードを見つける必要があります。したがって、削除ページと連動する検索ページと結果ページが必要です。ユーザーは検索ページで検索条件を入力し、結果ページでレコードを選択します。ユーザーがレコードをクリックすると、削除ページが開かれ、HTML フォームにレコードが表示されます。
削除ページへのリンクの作成
検索ページと結果ページを作成した後、結果ページに削除ページを開くリンクを作成する必要があります。次に、ユーザーが削除したいレコードのIDを渡すようにリンクを変更します。削除ページはこのIDを使用してレコードを見つけて表示します。
手動でリンクを作成するには
列がテーブルに追加されます。
削除を表す単語またはシンボルの画像を挿入することもできます。
リンクボックスの外側をクリックすると、Delete文字列がテーブルにリンク付きで表示されます。ライブビューを使用すると、リンクがすべてのテーブル行の同じテキストに適用されていることがわかります。
?recordID=#recordsetName.fieldName#
疑問符は、その後に続くものが1つ以上のURLパラメーターであることをサーバーに伝えます。recordIDという単語はURLパラメーターの名前です(任意の名前を付けることができます)。削除ページで後で使用するため、URL パラメーターの名前をメモしてください。
等号の後の式は、パラメーターの値です。この場合、値は、レコードセットからレコードIDを返すColdFusion式によって生成されます。動的テーブルの各行に対して異なる ID が生成されます。ColdFusion 式で、recordsetName をレコードセットの名前に置き換え、fieldName を各レコードを一意に識別するレコードセット内のフィールドの名前に置き換えます。ほとんどの場合、フィールドはレコード ID 番号で構成されます。次の例では、フィールドは一意の場所コードで構成されています。
confirmDelete.cfm?recordID=#rsLocations.CODE#
ページが実行されると、レコードセットの CODE フィールドの値が動的テーブルの対応する行に挿入されます。たとえば、オーストラリアのキャンベラのレンタル拠点のコードがCBRの場合、動的テーブルのキャンベラ行では次のURLが使用されます:
confirmDelete.cfm?recordID=CBR
?recordID=<?php echo $row_recordsetName['fieldName']; ?>
疑問符は、その後に 1 つ以上の URL パラメーターが続くことをサーバーに通知します。recordID という単語は URL パラメーターの名前です(任意の名前を付けることができます)。削除ページで後で使用するため、URL パラメーターの名前をメモしてください。
等号の後の式は、パラメーターの値です。この場合、値は、レコードセットからレコード ID を返す PHP 式によって生成されます。動的テーブルの各行に対して異なる ID が生成されます。PHP 式で、recordsetName をレコードセットの名前に置き換え、fieldName を各レコードを一意に識別するレコードセット内のフィールドの名前に置き換えます。ほとんどの場合、フィールドはレコード ID 番号で構成されます。次の例では、フィールドは一意の場所コードで構成されます:
confirmDelete.php?recordID=<?php echo $row_rsLocations['CODE']; ?>
ページが実行されると、レコードセットの CODE フィールドの値が動的テーブルの対応する行に挿入されます。たとえば、オーストラリアのキャンベラのレンタル場所のコードが CBR の場合、動的テーブルのキャンベラ行では次の URL が使用されます:
confirmDelete.php?recordID=CBR
?recordID=<%=(recordsetName.Fields.Item("fieldName").Value)%>
疑問符は、その後に続くものが1つ以上の URLパラメーターであることをサーバーに伝えます。recordIDという単語はURLパラメーターの名前です (任意の名前を付けることができます)。URLパラメーターの名前は後で削除ページで使用するため、覚えておいてください。
等号の後の式は、パラメーターの値です。この場合、 値はレコードセットからレコードIDを返すASP式によって生成されます。動的テーブルの各行に対して異なるIDが生成されます。ASP式で、recordsetNameを レコードセットの名前に置き換え、fieldNameを 各レコードを一意に識別するレコードセット内のフィールドの名前に置き換えます。ほとんどの場合、フィールドはレコードID 番号で構成されます。次の例では、フィールドは一意のロケーション コードで構成されています:
confirmDelete.asp?recordID=<%=(rsLocations.Fields.Item("CODE").Value)%>
ページが実行されると、レコードセットのCODEフィールドの値が動的テーブルの対応する行に挿入されます。たとえば、 オーストラリアのキャンベラのレンタル拠点のコードがCBRの場合、動的テーブルのキャンベラの行では次の URLが使用されます:
confirmDelete.asp?recordID=CBR
リンクを視覚的に作成するには(ASP のみ)
列がテーブルに追加されます。
削除を表す単語やシンボルを含む画像を挿入することもできます。
好きな名前を付けることができますが、後で削除ページで使用するため、名前をメモしておいてください。
選択したテキストの周りに特別なリンクが設定されます。 ユーザーがリンクをクリックすると、詳細ページに移動サーバービヘイビアーがレコード ID を含む URL パラメーターを指定された削除ページに渡します。例えば、URL パラメーターが recordID で、削除ページが confirmdelete.asp の場合、ユーザーがリンクをクリックしたときの URL は次のようになります:
http://www.mysite.com/confirmdelete.asp?recordID=43
URL の最初の部分 http://www.mysite.com/confirmdelete.asp が削除ページを開きます。2 番目の部分 ?recordID=43 が URL パラメーターです。これは、削除ページにどのレコードを検索して表示するかを示しています。 recordID という用語は URL パラメーターの名前で、43 がその値です。この例では、URL パラメーターにレコードの ID 番号 43 が含まれています。
削除ページの作成
レコードを一覧表示するページが完成したら、削除ページに切り替えます。削除ページにはレコードが表示され、本当に削除するかどうかをユーザーに確認します。ユーザーがフォームボタンをクリックして操作を確認すると、web アプリケーションがデータベースからレコードを削除します。
このページを作成するには、HTML フォームの作成、フォームに表示するレコードの取得、フォーム内のレコードの表示、データベースからレコードを削除するロジックの追加が必要です。レコードの取得と表示では、1 つのレコード(ユーザーが削除したいレコード)を保持するレコードセットを定義し、レコードセット列をフォームにバインドします。
削除ページには、一度に1つのレコード編集サーバービヘイビアーのみを含めることができます。例えば、削除ページにレコード挿入またはレコード更新サーバービヘイビアーを追加することはできません。
レコードを表示する HTML フォームを作成
前のセクションで削除リンクを作成したときに削除ページを指定しました。ファイルを初回保存するときは、この名前を使用します(例:deleteConfirm.cfm)。
非表示のフォームフィールドは、URL パラメーターによって渡されるレコード ID を格納するために必要です。非表示フィールドを追加するには、フォーム内に挿入ポイントを配置し、挿入 > フォーム > 非表示フィールドを選択します。
ユーザーはボタンをクリックして、表示されたレコードを確認して削除します。ボタンを追加するには、フォーム内に挿入ポイントを配置し、挿入 > フォーム > ボタンを選択します。
ユーザーが削除したいレコードを取得します
基本設定のレコードセットダイアログボックスまたはデータセットダイアログボックスが表示されます。 代わりに高度なレコードセットダイアログボックスが表示された場合は、「シンプル」をクリックします。
レコードの一部のフィールドのみを表示するには、「選択済み」 をクリックし、リストでコントロール+クリック(Windows)またはCommand+クリック (Macintosh)して目的のフィールドを選択します。
表示しない場合でも、必ずレコードIDフィールドを含めてください。
「フィルター」領域の最初のポップアップメニューで、削除リンクが配置されているページから渡される URL パラメーターの値と一致する値を含むレコードセット内の列を選択します。 例えば、URL パラメーターにレコード ID 番号が含まれている場合は、レコード ID 番号が格納されている列を選択します。 前の項で説明した例では、CODE という名前のレコードセット列に、削除リンクが配置されているページによって渡された URL パラメーターの値と一致する値が含まれます。
最初のメニューの横にあるポップアップメニューで、等号記号を選択します(選択されていない場合)。
3 番目のポップアップメニューから「URL パラメーター」を選択します。 削除リンクが配置されているページでは、URL パラメーターを使用して、情報を削除ページに渡します。
4 番目のボックスに、削除リンクが配置されているページから渡される URL パラメーターの名前を入力します。
レコードセットがバインディングパネルに表示されます。
ユーザーが削除したいレコードを表示します
この読み取り専用の動的コンテンツを、フォームの範囲内に挿入してください。ページに動的コンテンツを挿入する詳細については、テキストを動的にするを参照してください。
次に、レコードID列を 非表示フォームフィールドにバインドする必要があります。
非表示フォームフィールドが選択されます。
次の例では、レコードID列CODEに 固有のストアコードが含まれています。
レコードを削除するロジックの追加
選択したレコードを削除 ページに表示した後、ユーザーが削除確認ボタンをクリックしたときにデータベースからレコードを削除する ロジックをページに追加する必要があります。 このロジックは、削除レコード サーバービヘイビアを使用して迅速かつ簡単に追加できます。
レコードを削除するサーバービヘイビアを追加するには (ColdFusion、PHP)
後からこのダイアログボックスで、プライマリキー値を指定します。
削除レコードサーバービヘイビアは、このカラムで一致するものを検索します。このカラムには、ページ上の非表示フォームフィールドにバインドしたレコードセットカラムと同じレコード ID データが含まれている必要があります。
レコード ID が数値の場合は、「数値」オプションを選択します。
変数は、非表示フォームフィールドによって作成されます。 これは非表示フィールドの name 属性と同じ名前を持ち、フォームのメソッド属性に応じてフォームまたは URL パラメーターのいずれかになります。
ユーザーに簡潔な成功メッセージを含むページ、またはレコードが削除されたことをユーザーが確認できるように残りのレコードを一覧表示するページを指定できます。
レコードを削除するサーバービヘイビアーを追加するには(ASP)
接続を定義する必要がある場合は、「定義」ボタンをクリックします。
値が数値の場合は、「数値」オプションを選択します。 キーカラムは通常数値のみを受け入れますが、テキスト値を受け入れる場合もあります。
ユーザーに簡潔な成功メッセージを含むページ、またはレコードが削除されたことをユーザーが確認できるように残りのレコードを一覧表示するページを指定できます。
削除ページのテスト
結果ページで削除リンクをクリックすると、削除ページが表示されます。