項目選択肢の値をフォームに渡す/コンタクトフォーム7
やりたいこと
ページ内に設置した選択肢の値を問い合わせフォームに渡したい
ページの表記
<form action="https://ikkatsu-factoring.com/contact" method="post" name="form1"> <select name="select-name" class="selectbox"> <option value="--">選択肢</option> <option value="あああ">あああ</option> <option value="いいい">いいい</option> <option value="ううう">ううう</option> </select> <a href="javascript:form1.submit()"> </form>
functions.php
以下を追記
値が複数ある場合は4~8行目までを繰り返す
function my_form_tag_filter($tag) { if (!is_array($tag)) return $tag; if (isset($_GET['select-name'])) { if ($tag['name'] == 'select-name') { $tag['values'] = (array) $_GET['select-name']; } } return $tag; } add_filter('wpcf7_form_tag', 'my_form_tag_filter', 11);
コンタクトフォーム
default:postを追記
[select* select-name default:post]
参考にしたサイト
https://qiita.com/mitsuhiro_K/items/5cc9a2766e5953fa0bae
元のページはpostで渡しているけど、functions.phpのGETをPOSTに変えると動かない。
POSTで取得する方法もあるが、今回はこれで動いたので良しとする
メモ
知り合い曰くa href にjavascript~~の記述は違和感ありらしい
書き直せるなら、
buttonタグに変更して、スタイルも合わせて変更するほうが良い
input type="submit"でもいけるが、装飾が難しい
*button inputは、タグの機能的に送信するものだから
<a href="javascript:form1.submit()">fugafuga</a>