UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#231 PHPで汎用的なフォームを簡単に作成する方法(ラジオボタン追加)

記入日:2023-08-27 編集日:2023-08-27

PHPで汎用的なフォームを簡単に作成する方法に関して解説をしてみようと思います。

この記事を読むと(約5分)
PHPで汎用的なフォームを簡単に作成する方法をイメージできます。

PHPで汎用的なフォームを簡単に作成

関数を変更して、ラジオボタンをサポートするようにするには、新しいパラメータを関数に追加し、それを用いてセレクトメニューのオプションを設定する必要があります。以下は、改変したコード例です。


function generateInputField($fieldName, $inputType, $options = null) {
  echo '<label for="' . $fieldName . '">' . ucfirst($fieldName) . ':</label>';
  
  if ($inputType === 'select' && is_array($options)) {
    echo '<select id="' . $fieldName . '" name="' . $fieldName . '">';
    foreach ($options as $value => $label) {
      echo '<option value="' . $value . '">' . $label . '</option>';
    }
    echo '</select>';
  } elseif ($inputType === 'radio' && is_array($options)) {
    foreach ($options as $value => $label) {
      echo '<input type="radio" id="' . $fieldName . '_' . $value . '" name="' . $fieldName . '" value="' . $value . '">';
      echo '<label for="' . $fieldName . '_' . $value . '">' . $label . '</label><br>';
    }
  } else {
    echo '<input type="' . $inputType . '" id="' . $fieldName . '" name="' . $fieldName . '">';
  }
}

echo '<form>';
generateInputField('username', 'text');
generateInputField('email', 'email');
$options = [
  'option1' => 'Option 1',
  'option2' => 'Option 2',
  'option3' => 'Option 3'
];
generateInputField('dropdown', 'select', $options);

$options = [
  'radio1' => 'Radio 1',
  'radio2' => 'Radio 2',
  'radio3' => 'Radio 3'
];
generateInputField('radio_buttons', 'radio', $options);

echo '</form>';


1. generateInputField 関数の定義:
この関数は、フィールド名、入力タイプ、オプション(必要な場合)を受け取り、適切な形式の入力フィールドを生成する役割を担います。

2. ラジオボタンの条件追加:
新たに以下の条件を追加して、入力タイプが 'radio' である場合の処理を追加しました。

elseif ($inputType === 'radio' && is_array($options)) {
  foreach ($options as $value => $label) {
    // ラジオボタンを生成するコード
  }
}

このブロックは、$inputType が 'radio' であり、かつ渡されたオプションが配列である場合に実行されます。

3. ラジオボタンの生成:
ラジオボタンの部分では、与えられたオプション(ラジオボタンの値とラベルの組み合わせ)を反復処理し、それぞれのラジオボタンとラベルを生成しています。

echo '<input type="radio" id="' . $fieldName . '_' . $value . '" name="' . $fieldName . '" value="' . $value . '">';
echo '<label for="' . $fieldName . '_' . $value . '">' . $label . '</label><br>';

ここでは、ラジオボタンの id にはフィールド名とラジオボタンの値を組み合わせて一意の値を生成し、name 属性にはフィールド名を設定します。また、ラジオボタンのラベルも対応する id に関連付けるために for 属性が設定されています。

4. フォーム内での使用:
生成された関数呼び出し部分では、テキストフィールド、メールアドレスフィールド、セレクトボックスに加えて、ラジオボタンも生成されるようになりました。ラジオボタン用のオプションも指定しています。

これによって、ラジオボタンを含むより多様な入力フィールドを生成することが可能になります。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。