(編集:これは前の質問へのフォローアップです)
私は、ユーザーが複数のユーザーのために複数のマシンをチェックアウトできるサイトの完全な再設計に取り組んでいます。
これが私がこれまでに持っているものです。
2 つの cfquery を出力するフロント ページ。
1 つのクエリは、アクティブなマシン (つまり、チェックアウト済み) です。これは基本的な cfoutput クエリであり、クエリの値に基づいて情報を表示します。cfif ステートメントを使用して、アクティブなマシンのみをフィルタリングします (SQL でアクティブな場合は値 = 1)。
また、MAC、IP OS なども出力します。
もう 1 つのクエリは、ユーザーがチェックアウトできる非アクティブなマシンです。また、アクティブであるかどうかに基づいてフィルタリングされますが、今回は cfif query.active eq 0 によって行われます。このクエリにはいくつかのフォーム フィールドがあり、ユーザーはチェックインするデバイスのチェック ボックスをオンにして、必須フィールド (userID) に入力できます。とコメント、基本的に)そしてそれを提出してください。
このページの下部に、アクションを選択できるドロップダウン メニューがあり、フォームはアクション番号 (form.choose_action) を渡して、cfc に何をすべきかを伝えます。IE のアクション番号が 4 の場合、cfc に人を編集ページに送信するように指示し、deviceID を一緒に渡します。
したがって、基本的にはあらゆる状況で DeviceID を渡し、マシンがアクティブな場合にのみ UserID を渡します。
ユーザーが送信をクリックすると、面倒な作業のほとんどを行う cfc を呼び出すページに直接移動します。
全体として、これは非常に貧弱なソリューションです。一度に 1 台のマシンがチェックインまたはチェックアウトされている場合にのみうまく機能するからです。
何が起こっているのかをよりよく説明するための写真を次に示します。
これが私が望むものです:
複数のデバイスを選択してチェックイン/チェックアウトできます。うまくいけば、何らかの方法でチェックボックスを使用できます。
ユーザーのためにマシンをチェックアウトする場合、UserID は何らかの方法でエントリ フォーム (非アクティブな出力クエリ) のそれぞれのデバイスに関連付ける必要があり、可能であれば、単一の挿入で deviceID と一緒に入力する必要があります。
複数のデバイスをチェックインできるようにしたいだけでなく、アクティブなマシンをチェックアウトできないようにしたい (マシンは既にチェックアウトされているため)。非アクティブなマシンにも同じことが言えます。ユーザーがまだチェックアウトしていないマシンをチェックインできないようにしたいと思います。今のところ、私は数字を使用しています(つまり、フィールドが 0 より大きい場合)
いくつかのメモ: 一度にこれを使用するのは 1 人のユーザーだけなので、セッションのことや、同じデバイスに多くの人がチェックインしようとすることについて心配する必要はありません。
現在、フォーム データを CFC に渡すページに変数をプッシュしていますが、これは最善の方法ではない可能性があります。
本当に私が抱えている大きな問題は、設計の観点からです。私のロジックは非常に複雑で非効率的です。現時点で私が考えることができる唯一のことは、配列を介してデバイスの値を渡すことです。しかし、チェックボックスでこれを行うことができるかどうかはわかりません。
お時間をいただきありがとうございます。