記入日:2023-08-04 編集日:2023-08-04
セレクトメニューで動的な入力フィールドを持つフォームを作成する方法に関して解説をしてみようと思います。
この記事を読むと(約5分)
セレクトメニューで動的な入力フィールドを持つフォームを作成する方法をイメージできます。
以下のコードはフォームに動的な入力フィールドを追加する仕組みを作成しています。
<form id="myForm" method="post" action="submit.php"> <div id="inputContainer"> <!-- ここに生成されるインプットが追加される --> </div> <label for="inputCount">枠数:</label> <select id="inputCount" name="inputCount" onchange="updateInputFields()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <!-- 必要な数だけオプションを追加してください --> </select> <input type="submit" value="送信"> </form> <script> function updateInputFields() { const container = document.getElementById('inputContainer'); const inputCount = parseInt(document.getElementById('inputCount').value, 10); // 全ての既存のインプットを削除 while (container.firstChild) { container.removeChild(container.firstChild); } // 選択された数だけインプットを生成 for (let i = 0; i < inputCount; i++) { const inputField = document.createElement('input'); inputField.type = 'text'; inputField.name = 'inputField[]'; container.appendChild(inputField); } } // ページが読み込まれたときに1つのインプットを表示 updateInputFields(); </script>
1. HTML部分:
2. JavaScript部分:
最後に、ページが読み込まれたときにupdateInputFields()関数が呼び出されます。これにより、ページが最初に読み込まれたときに1つのテキスト入力フィールドが表示されます。
この仕組みにより、ユーザーが選択した数だけテキスト入力フィールドが生成され、それらの入力フィールドと一緒にフォームのデータが "submit.php" に送信されるようになります。"inputField[]" のようにname属性に配列記法を使用しているので、PHPのサーバーサイドスクリプトでは$_POST['inputField']として受け取ることができます。
SQLの使いどころ
サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。
SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。
また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。
KK
機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。