質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

解決済

【contact_form7】DBにラジオボタンの値がインサートされない

uznetro
uznetro

総合スコア12

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

2回答

0リアクション

0クリップ

4188閲覧

投稿2015/11/16 08:11

編集2015/11/17 01:30

wordpressプラグインのcntact_form7で送信した値をDBに保存したい為、
ネットの情報を参考に、下記の様な形で実装しました。

テキストのフォーム部分は、DBにインサートされるのですが、
複数要素を持つ”ラジオボタン/チェックボックス”がうまくいきません。

初心者の為、説明/情報不足があるかと思いますが、
ご教授宜しくお願いします。

▼環境
wordpress バージョン:4.3
contact_form7バージョン:4.3
MySQL バージョン:5.0.95

【出力されたHTMLソース】

HTML

<div role="form" class="wpcf7" id="wpcf7-f141-o1" lang="ja" dir="ltr"> <div class="screen-reader-response"></div> <form action="/wordpress/form/poll/#wpcf7-f141-o1" method="post" class="wpcf7-form" novalidate="novalidate"> <div style="display: none;"> <input type="hidden" name="_wpcf7" value="141" /> <input type="hidden" name="_wpcf7_version" value="4.3" /> <input type="hidden" name="_wpcf7_locale" value="ja" /> <input type="hidden" name="_wpcf7_unit_tag" value="wpcf7-f141-o1" /> <input type="hidden" name="_wpnonce" value="d41c7e5b6b" /> </div> <div class="formGroup"> <p>お名前 (必須)<br /> <span class="wpcf7-form-control-wrap name"><input type="text" name="name" value="" size="40" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required" aria-required="true" aria-invalid="false" /></span> </p> <p>メールアドレス (必須)<br /> <span class="wpcf7-form-control-wrap mail"><input type="email" name="mail" value="" size="40" class="wpcf7-form-control wpcf7-text wpcf7-email wpcf7-validates-as-required wpcf7-validates-as-email" aria-required="true" aria-invalid="false" /></span> </p> <p>ラジオアイテム<br /> <span class="wpcf7-form-control-wrap item"><span class="wpcf7-form-control wpcf7-radio"><span class="wpcf7-list-item first"><input type="radio" name="item" value="itemA" />&nbsp;<span class="wpcf7-list-item-label">itemA</span></span><span class="wpcf7-list-item last"><input type="radio" name="item" value="itemB" />&nbsp;<span class="wpcf7-list-item-label">itemB</span></span></span></span> </p> <p> <input type="submit" value="送信" class="wpcf7-form-control wpcf7-submit"/> </p> </div> <div class="wpcf7-response-output wpcf7-display-none"></div> </form> </div>

【contact_form7設定画面のソース】

<div class="formGroup"> <p>お名前 (必須)<br /> [text* name] </p> <p>メールアドレス (必須)<br /> [email* mail] </p> <p>ラジオアイテム<br /> [radio item "itemA" "itemB"] </p> </div> <p> [acceptance acceptance] 規約に同意する </p> <p>[submit "送信"]</p>

【fuction.php】

PHP

/** Contact-form7 insert DB [function.php] *****************************************************/ function contactform7_before_send_mail( $form_to_DB ) { global $wpdb; $form_to_DB = WPCF7_Submission::get_instance(); if ( $form_to_DB ) { $formData = $form_to_DB->get_posted_data(); } $name =$formData['name']; $mail =$formData['mail']; $item =$formData['item']; //radio button $wpdb->insert ( 'wp_cf7db', array('name' => $name,'mail' => $mail), array( '%s','%s' ) ); //下記はダメでした。JSONエラーがでて、DBにインサートされません。 //JSON.parse: unexpected character at line 1 column 1 of the JSON data //$wpdb->insert ( 'wp_cf7db', array('name' => $name,'mail' => $mail,'item' => $item), array( '%s','%s','%s' ) ); } remove_all_filters ('wpcf7_before_send_mail'); add_action( 'wpcf7_before_send_mail', 'contactform7_before_send_mail' );

sql

CREATE TABLE IF NOT EXISTS `wp_cf7db` ( `id` int(11) NOT NULL AUTO_INCREMENT, `item` varchar(50) DEFAULT NULL, `name` varchar(50) DEFAULT NULL, `mail` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) )

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。