質問: 「value」に2つの値をセットする方法 上のスクリプトを使い、選択結果(合計金額)をウエブページ上で確認できるように作りました。 更に、氏名や住所などを入力してもらい、選択結果・合計金額と共にフォームメールとして送信できるようにしました。 一連の流れはできたのですが、どうしても解決できない事があります。 例えば 3本パック 4本パック 5本パック の場合「value="50"・value="50"・value="100"」となってますからちゃんと計算してくれますが、 フォームメールとして受け取った場合「何本パック」なのか判別できません。 (数字しか記載がないため、上の例で言うと 3本パックと 4本パックの判別ができません) こんな画像を用意しました。 http://www3.ocn.ne.jp/~aiworks/chie/ 「valueに2つの値をセットする」と聞いたことがありますが、どの様にするのか分かりません。 上記内容についてご教授頂ければ幸いです。 宜しくお願い致します。
回答: >「value」に2つの値をセットする方法 基本的には値はひとつしか持てません。 でも、ひとつの値に複数の意味を持たせれば、同様の目的は果たすことができます。 例えば、適当な区切り文字を付けておいて mサイズ value値を『_』で分割してあげれば、2つの値として利用することもできます。 (正規表現などで分割できれるものであれば、区切り文字なしでもokです。上例なら"m20"でもいけそう) あるいは、value以外の属性値を利用するという方法もありますが、formの送信の際に値が送られないので、value値を利用する方が良いと思われます。 一方で、選択した値が必要であるならその内容を識別できるようにvalue値を設定しておくのが普通だと思われますので、ご提示のような設定方法は少々無理があるかも知れません。パックの種類を入力させるのであれば、その単価は別にテーブルで持っておいて、スクリプト側で換算するのが一般的ではないでしょうか? それであれば、サーバー側にも単価テーブルがあれば、直接単価を送信する必要もなくなります。 まぁ、ご提示ようなマークアップのままで行いたいのであれば、htmlからテキストなどを参照するという方法でもいけるかも... 例えば(識別するだけの例なので応用は適当にどうぞ) 文字数制限に引っかかるので、例は別に投稿します。