候補選択形式とは、二つ以上の候補から選択して登録するフォームパーツ全般を指します。
候補選択形式(内)は、その中でも少ない候補を持っているフォームパーツの作成に役立ちます。
これは「期間」のような項目の事です。
![]() |
今回は例として、求職者の登録情報に希望期間という項目を追加します。
候補選択形式の項目の追加は以下のような手順で行います。
まず、項目を追加したいページのテンプレートを開きます。
今回は、求職者の登録項目を追加しますので、下記のテンプレートを開きます。
jobsystem/template/pc/nUser/Regist_2.html
上記のテンプレートは、未ログイン時に以下のURLから表示されるページの次のページです。
設置先のURL/regist.php?type=nUser
まず、デザイン上に項目を追加しましょう。
![]() |
通常のソースコードの例(ラベル付きチェックボックス)
<label><input type="checkbox" name="span" value="long" /><label>
ラベル付きのチェックボックスのHTMLソースは大きく分けて2通りありますが、
当システムでは、labelタグ内にフォームパーツを出力します。
当システムでは、上記のようなフォームパーツを出力する為に以下のコマンドコメントを記述します。
<!--# form checkbox span long/short <br\ /> long/short/etc 長期/短期(およそ6ヶ月以内)/その他 #-->
このコマンドコメントは以下のような意味を持つ物です。
<!--# form checkbox span long/short/etc 長期/短期(およそ6ヶ月以内)/その他 #-->
選択された状態を無しにし、inputタグの直後に何も付与しない場合は上記のように
フィールド名と送信データの間に半角スペースを三つ挿入します。
![]() |
チェックボックスで書いたコマンドコメントを、少し修正すると簡単にラジオボタンに変更できます。
以下は、チェックボックスを出力する時に使ったコマンドコメントです。
<!--# form checkbox span long/short <br\ /> long/short/etc 長期/短期(およそ6ヶ月以内)/その他 #-->
このコマンドコメントを以下のように修正して下さい。
<!--# form radio span long <br\ /> long/short/etc 長期/短期(およそ6ヶ月以内)/その他 #-->
「チェックボックスを出力しなさい」といコードを、「ラジオボタンを出力しなさい」と書き換えました。
そして、ラジオボタンは候補から一つを選ぶ物ですから、最初から選択しておく候補を一つに減らしました。
![]() |
セレクトボックスを出力するコマンドコメントは少し違います。
以下のコマンドコメントの例を見てください。
<!--# form option span long long/short/etc 長期/短期(およそ6ヶ月以内)/その他 #-->
このコマンドコメントは以下のような意味を持つものです。
これを下の画像のように、選択を促すような形式に変更してみます。
![]() |
<!--# form option span /long/short/etc 選択して下さい/長期/短期(およそ6ヶ月以内)/その他 #-->
この修正で任意の選択が可能になり、選択しない事も可能になりました。
又、選択されていない状態がある事で、選択の必須チェックも行えます。
![]() |
それでは、選択されたデータを実際にデータベースに登録できるようにしましょう。
まずはフィールドの設定を行います。
以下のファイルを開いてください。
jobsystem/lst/nuser.csv
![]() |
以下は、このファイルのA列からG列までのデータの説明です。
A列 | B列 | C列 | D列 | E列 | F列 | G列 |
フィールド名 | データ型 | 文字列の長さ | 登録時必須チェック | 編集時必須チェック | 入力内容チェック | 登録ステップ |
今回は、登録フォームの2ステップ目で必須チェック、編集時にも必須チェックを行います。
![]() |
A列にフィールド名「span」を、
B列にはデータ型「string」を、
C列は文字列の制限ですので空白のまま、
D列に登録時に必須チェックを行う事を意味する「Null」を、
E列に編集時に必須チェックを行う事を意味する「Null」を、
F列の正規表現による入力内容チェックは行わないので空白のまま、
G列の登録ステップは「2」を、それぞれ入力して下さい。
※今回の例では、必ず一番最後の行に追加して下さい。
これを保存し、FTPで以下の場所に上書きアップロードします。
設置先のURL/lst/nuser.csv
アップロードが終わったら、tool.phpにアクセスしパスワードを入力し認証を行って下さい。
初期パスワードはreadme.txtを確認してください。
![]() |
このままnUserのインポートをクリックすると、データが初期化(又は前回のエクスポート時点にロールバック)されてしまいます。
今回は現時点のデータを維持したまま、フィールドをセットし直したいだけなので、以下の手順で行います。
※項目を最後に追加する形を取っていない場合は、エクスポート後にCSVをダウンロードし、編集する必要があります
※既存データの位置に変更が入らない場合のみ、上記の手順を行う事ができます
※この手順を行った場合は、作業後にFTPからtdb以下のnuser.csvを削除しましょう。もしくはアクセス制限を掛けておく
※既に運営中のサイトで作業を行う場合は、細心の注意が必要です。
必須入力エラーの設定は、テキストエリア形式の同項目を参考にして下さい。
これまでの手順で、データを登録する事が出来るようになりました。
それでは、登録したデータを表示させる為に、当労苦したデータに関連するテンプレートを修正しましょう。
まず、登録内容の確認ページでデータを表示させる必要があります。
登録内容の確認ページのテンプレートは以下のファイルです
jobsystem/template/pc/nUser/RegistCheck.html ※求職者の登録内容の確認ページ
登録データを表示する為のコマンドコメントは以下のようなものでしたね?
spanというフィールドに格納されているデータを表示する <!--# value span #-->
このコマンドコメントでデータを表示した場合、下の画像のようになります。
![]() |
このコマンドコメントの出力結果は正しいものですが、実際に表示したいデータは下の画像のような長期というような文字です。
![]() |
データベースに格納されている文字列 | long | short | etc |
---|---|---|---|
実際に表示したい文字列 | 長期 | 短期(およそ6ヶ月以内) | その他 |
上の表のように、格納されているデータと実際に表示したい文字列が違う場合は、次のコマンドコメントを使用します。
<!--# valueReplace span long/short/etc 長期/短期(およそ6ヶ月以内)/その他 #-->
データベースに格納されているデータが1種類、longならlongだけ、shortならshortだけの場合は、このコマンドコメントで表示する事が出来たでしょう。
しかし、チェックボックスで実装し二つ以上の候補が選択された時、データベースに格納されているデータは配列になっています。
![]() |
このようなケースの場合、long/shortという配列で格納されていますので、先のコマンドコメントでは表示する事ができません。
そこで、格納されているデータが配列になる場合は以下のコマンドコメントを用いて表示します。
<!--# arrayReplace span <br\ /> long/short/etc 長期/短期(およそ6ヶ月以内)/その他 #-->
これで、二つ以上の候補が選択された時の表示も上手く行きました。
![]() |
登録確認ページのほかにも最低限、下記のファイルを修正しデータが表示されるようにして下さい。
※そのデータを表示する必要があるページの修正を行って下さい。
候補選択形式(内)を持った項目の追加と、データの表示は上手くいきましたか?