ドロップダウン ボックスのその他の入力値 – JavaScript – SitePoint Forums

これはクローズアップされたトピックであり、これでは答えられませんでした:


データベースに追加される選択フィールドおよびその他の情報は、フォーム フィールドにラップして、データベースを更新するバックエンド コードにフォームの情報を送信できるようにする必要があります。

フォームフィールドでラップする方法を知っています。 常にそれを行い、ドロップダウンを頻繁に使用します。 この値は、入力ボックスに入力されたものと想定されます。 しかし、書かれているように、データベースに「その他」という単語を追加するだけです。それが値であるためです。

したがって、その JS に基づいて、入力されたテキストを取得し、それをデータベースに送られる値として使用する方法がわかりませんでした。



HTML コードのオプションに name 属性を指定すると、それがデータベースに送信されます。

そのオプションが有効かどうかに応じて、オプションから name 属性を追加および削除する必要がありますか? いいえ、すべきではありません。 オプションは常にバックエンド フォームに送信する必要があり、そのような決定はバックエンド自体で行う必要があります。

バックエンドがそのような決定に責任を持つ必要があるのはなぜですか? フロントエンドからは何も信用してはならないからです。 あらゆる種類の問題で簡単に悪用されます。 バックエンドは、信頼できる決定が行われる場所です。

すでに選択されているのは name 属性ですか?

select name="select_opt"

同じページにいることを確認するために、ドロップダウンの一部である入力テキストには「その他」の値があります。 入力テキストボックスに入力した値を値にしたい。 たとえば、都市リストがあり、それがドロップダウンにない場合、ユーザーは独自の都市名などを追加できます.

データベースに送信するときに、RegEX を使用してその入力を文字だけに制限できます。 しかし、私の特定の状況では、私はそれについて過度に心配していません.

ここで通常行われているのは、青色のイベントを使用して、ユーザーが入力を終了したときに値が更新される非表示のフォーム フィールドを作成することです。

あなたはこれについて私よりもよく知っていますが、ドロップダウン オプションの 1 つが選択された場合、フォーム フィールドは同じでなければならないので、非表示のフォーム フィールドが必要でしょうか? ユーザーは、入力された値を選択するだけです。

隠しフィールドを指定すると、通常の入力テキスト フィールドを使用した方がよいように思われますが、ドロップダウン オプションの一部にしたいと考えています。

これは私が知っている範囲をはるかに超えていますが、JS に値が追加された場合は次のように考えていました。


…たぶん、次のようにキャプチャできます。


しかし、JS に値を追加しようとすると、テキスト入力を表示することさえできませんでした。

非表示のフォーム フィールドは使用しませんが、「その他」オプションが選択されるまで CSS を使用して入力テキスト フィールドを非表示にします。 その後、他のオプションが選択された場合、入力テキスト フィールドを再び非表示にする必要があります。 フォームが送信されると、選択したオプションの値と入力テキスト フィールドの内容の両方がサーバーに送信されます。

サーバーでは、データベースに何を入れるかを決定するために PHP が使用されます。 「その他」が選択された場合、入力テキスト フィールドの内容がデータベースに入ります。 他のオプションが選択されている場合は、そのオプションの値がデータベースに入力されます (入力テキスト フィールドからのテキストがある場合でも)。

さらに、「その他」が選択された場合、入力テキスト フィールドに何らかのテキストが含まれている必要があることを確認するために、何らかの方法で検証が必要になります。

もちろん、PHP は、悪意のあるフォーム送信に対する保護も提供する必要があります。

Leave a Comment

Your email address will not be published. Required fields are marked *