WordPress 自作フォーム その3(チェックボックスなど)

公開日: : PHP, WordPress

Wordpress 自作フォーム (チェックボックスなど)

以前、WordPress 自作フォーム その1の記事で WordPress で自作フォームを作ってみました。

これに「チェックボックスなどの項目を追加したい」というお問い合わせがあったので、やってみようと思います。

以前作ったものは以下の6つのファイルでした。
WordPress 問い合わせフォーム ダウンロード(contact_allset.zip)

contact-index.php → インデックス
contact-check.php → 文字列チェック(※変更が必要)
contact-sendmail.php → メールの送信(※変更が必要)

contact-input.php → 入力画面(※変更が必要)
contact-confirm.php → 確認画面(※変更が必要)
contact-completion.php → 完了画面

これに、ラジオボタン、チェックボックス、プルダウン を追加する例をやっていきます。

プラグインではないので、※ の4ファイルもの変更が必要で、少し大変です。

記事最後に例を実装したダウンロードファイルがあります。

WordPress お問い合わせ 【入力画面】の変更

変更するファイル:contact-input.php

form 内好きなところに好きな名前で、入力フォームを追加します。

入力画面:ラジオボタンの項目追加例

<!--追加:ラジオボタン-->
<div>
<input type="radio" name="sex" value="男" checked>男
<input type="radio" name="sex" value="女" >女
</div><br />

入力画面:チェックボックスの項目追加例

<!--追加:チェックボックス-->
<div>お使いの環境を教えてください。<span class="red">※</span><br />
<input type="checkbox" name="ostype[]" value="Mac">Mac
<input type="checkbox" name="ostype[]" value="Windows">Windows
<input type="checkbox" name="ostype[]" value="iPhone">iPhone
<input type="checkbox" name="ostype[]" value="Android">Android
<input type="checkbox" name="ostype[]" value="その他">その他
</div><br />

例では、チェックボックスの値を配列で受け取るようにしました。

配列でやらない場合は、name の値を ostype1、ostype2、ostype3・・・・などひとつひとつ違う名前で付ければいいかと思います。

入力画面:プルダウンの項目追加例

<!--追加:プルダウン-->
<div>お問い合わせの種類を選択してください。<br />
<select name="kind">
<option value="問い合わせ">問い合わせ</option>
<option value="ホームページリンク">ホームページリンク</option>
<option value="その他">その他</option>
</select>

WordPress お問い合わせ 【確認画面】の変更

変更するファイル:contact-confirm.php

確認画面:ラジオボタンの項目追加例

<!--追加:ラジオボタン-->
<div>
<p style="background:#f8f8f8;">性別:<?php echo ($sex)?$sex:"";?></p><input name="sex" type="hidden" value="<?php echo ($sex)?$sex:"";?>" />
</div>
<br />

確認画面:チェックボックスの項目追加例

<!--追加:チェックボックス-->
<div>
<p style="background:#f8f8f8;">お使いの環境:<?php 
for($i=0;$i<count($ostype);$i++):?>
<?php if($i>0){echo ($ostype[$i])?',':'';}?>
<?php echo ($ostype[$i])?$ostype[$i]:'';?>
<input name="ostype[]" type="hidden" value="<?php echo ($ostype[$i])?$ostype[$i]:"";?>" />
<?php endfor;?>
</p>
</div>

確認画面:プルダウンの項目追加例

<!--追加:プルダウン-->
<div>
<p style="background:#f8f8f8;">お問い合わせの種類:<?php echo ($kind)?$kind:"";?></p><input name="kind" type="hidden" value="<?php echo ($kind)?$kind:"";?>" />
</div>
<br />

WordPress お問い合わせ 【文字列チェック】の変更

変更するファイル:contact-check.php

文字列チェック:チェックボックスの項目追加例

チェックボックス を追加した場合は、例ではPOSTの値を配列にした為エラーがでます。

50行目辺りの以下の処理を変更してください。

変更前

// 引数を元に文字列処理及び変換処理を行う
foreach($_POST as $k=>$e):
	$params[$k] = Chk_StrMode($e);
endforeach;


変更後

// 引数を元に文字列処理及び変換処理を行う
foreach($_POST as $k=>$e):
	//追加:配列だったら
	if (is_array($e)) {
		$params[$k] = $e;
	}
	else{
		$params[$k] = Chk_StrMode($e);
	}
endforeach;

配列でやらない場合はこの部分は変更しなくても大丈夫です。

文字列チェック:必須項目追加例(チェックボックス配列の場合)

チェックボックスが配列で必須項目にしたい場合は一番下にこのように入れてください。

//チェックボックスが必須の場合
$ostype_str = '';
for($i=0;$i<count($ostype);$i++){
	if($ostype[$i])$ostype_str .= $ostype[$i].',';
}
$error_mes .= Chk_InputMode($ostype_str,"・お使いの環境をひとつは選択してください。<br />\n");

文字列チェック:必須項目追加例(チェックボックス配列以外)

チェックボックスが配列なもの以外で必須項目にしたいものがあったら、一番下に以下のように足してください。

$error_mes .= Chk_InputMode($kind,"・お問い合わせの種類を選択してください。<br />\n");

この例は、プルダウンの「お問い合わせの種類」に空 option があり、必須にしたい場合になります。

WordPress お問い合わせ 【メール送信】の変更

変更するファイル:contact-sendmail.php

50行目辺りの以下のメール本文に追加した項目を追加します。

変更前

// メール本文
$mailbody = "サイトよりお問い合わせを受け付けました。

────────────────────────────────

■名前: $namae 様より

■メールアドレス: $email

■メッセージ:
$message

────────────────────────────────
";


変更後

// メール本文
$mailbody = "サイトよりお問い合わせを受け付けました。

────────────────────────────────

■名前: $namae 様より

■メールアドレス: $email

■メッセージ:
$message

■性別:
$sex

■お使いの環境:
$ostype_str

■お問い合わせの種類:
$kind

────────────────────────────────
";

WordPress お問い合わせ チェックボックスなど追加例 の 参考ファイルダウンロード

参考にチェックボックスなど追加したファイルをzipで置いておきました。

WordPress 問い合わせフォーム チェックボックスなど追加例 ダウンロード(contact_allset2.zip)

関連記事

WordPress カレンダー カスタマイズ

WordPress カレンダー カスタマイズ

WordPressでカレンダーの表示部分をいじってみようかと思います。 どうやら、カレンダー関

記事を読む

WordPress プラグイン「 Search Everything 」

WordPressでカテゴリー名も検索にひっかけるプラグイン「Search Everything」

WordPressでカテゴリーも検索にひっかけるプラグイン「Search Everything 8.

記事を読む

wordpress タイトルの変更

WordPress タイトルの変更

テンプレートタグ the_title(); get_the_title(); WordPress

記事を読む

リビジョンを削除し、テーブルを最適化してDBの容量を削減

WordPress リビジョンを削除し、テーブルを最適化してDBの容量を削減

WordPress リビジョン機能 リビジョンは過去の記事を保存してくれる WordPress の

記事を読む

All-in-One WP Migration で サーバ移動

「All-in-One WP Migration」プラグインで 簡単に WordPress のサーバー移行する手順メモ

1.移行元サイトでのデータエクスポート 「All-in-One WP Migration(公式リン

記事を読む

wordpress カスタム投稿を一覧(ループ)で表示する

wordpress カスタム投稿を一覧(ループ)で表示する

カスタム投稿を一覧で表示する方法がいろいろあります。 query_posts 関数が非推奨になって

記事を読む

Wordpress VR Test

WordPress で VR させて、360°のパノラマ画像を表示する

WordPress.com内ショートコードで VR させる WordPress.com内で、VR(

記事を読む

MVCの典型的な相関図

PHPフレームワークについて

フレームワークとは? 開発する際に頻繁に必要とされる汎用的な機能をまとめて提供している、アプリケー

記事を読む

WordPress レスポンシブ テンプレート

WordPress レスポンシブ テンプレートコーポレート用(シンプル・カスタマイズ用)ダウンロード

WordPress レスポンシブ テンプレートコーポレート用(シンプル・カスタマイズ用)ダウンロード

記事を読む

WordPress レスポンシブ テンプレート 元にサイトを作ってみる その2

DEMO を見る カスタム投稿タイプ functions.php 今回は3つのリストメニュ

記事を読む

PHP WordPress

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

wordpress タイトルの変更
WordPress タイトルの変更

テンプレートタグ the_title(); get_the_title

All-in-One WP Migration で サーバ移動
「All-in-One WP Migration」プラグインで 簡単に WordPress のサーバー移行する手順メモ

1.移行元サイトでのデータエクスポート 「All-in-One WP

DNSサーバーとは
ドメインとは?DNSサーバーとは?

ドメインとは? ドメインとは? ドメインとは、インターネット上のネ

javascriptで複数同じ名前のformの値を取得する
javascriptで複数同じ名前のformの値を取得するとエラー Cannot read property ‘value’ of undefined

Javascript で value の値を取得する このようなHT

リビジョンを削除し、テーブルを最適化してDBの容量を削減
WordPress リビジョンを削除し、テーブルを最適化してDBの容量を削減

WordPress リビジョン機能 リビジョンは過去の記事を保存して

→もっと見る

    • 202107
      Mon Tue Wed Thu Fri Sat Sun
      1234
      567891011
      12131415161718
      19202122232425
      262728293031
    にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ PHPへ にほんブログ村 IT技術ブログ WordPressへ
    にほんブログ村 FC2 Blog Ranking
    PAGE TOP ↑