前提・実現したいこと
PHP(CakePHP)でお問い合わせシステムを作っています。
お問い合わせフォーム内の1項目にチェックボックスで選択する部分があり、その選択した項目をメールで送信する際に表示をしたい(お客様が選んだ選択はこれですよ、とわかるようにする)のですが、それができず困っています。
問い合わせフォーム内コード(抜粋)
<?php echo $this->Form->create('InquiryMaster'); ?> <h2>お問合せ</h2> <!-- --> <?php echo $this->Flash->render(); ?> <div class="table"> (~中略~) <dl> <dt>タイトル</dt> <dd class="check"><div><?php echo $this->Form->input('contents',array('label'=>false,'legend'=>false,'div'=>false,'type' => 'select','multiple' => 'checkbox','options'=>array('1'=>'1','2'=>'2','3'=>'3','4'=>'4','5'=>'5'))); ?></div> </dd> </dl> (~中略~) </div> <?php echo $this->Form->hidden('mode',array('value'=>'confirm')); ?> <?php echo $this->Form->submit('確認画面へ'); ?> <?php echo $this->Form->end(); ?>
Cakephp コントローラー(抜粋)
public function index($id = false) { //return $this->render('contact_complete'); if(isset($this->request->data['InquiryMaster'])) { if($this->request->data['InquiryMaster']['mode'] == 'confirm') { $data = $this->request->data['InquiryMaster']; if(!empty($data['name']) && !empty($data['email']) && !empty($data['content'])) { $this->render('contact_confirm'); } else { $this->Flash->set('必須項目を入力してください。'); $this->render('index'); } } elseif($this->request->data['InquiryMaster']['mode'] == 'submit') { $this->request->data['InquiryMaster']['user_agent'] = $_SERVER['HTTP_USER_AGENT']; (~中略~) "■タイトル\n". $this->request->data['InquiryMaster']['contents']."\n\n". this->InquiryMaster->save($this->request->data['InquiryMaster']); (~中略~) } else { $this->render('index'); } } else { $this->render('index'); } } }
発生している問題・エラーメッセージ
上記のコードで以下のエラーメッセージが表示されていました。
Notice (8): Array to string conversion [APP/Controller/InquiryController.php, line 40] Code Context InquiryController::index() - APP/Controller/InquiryController.php, line 40 ReflectionMethod::invokeArgs() - [internal], line ?? Controller::invokeAction() - CORE/Cake/Controller/Controller.php, line 499 Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 193 Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 167 [main] - APP/webroot/index.php, line 117 Notice (8): Array to string conversion [APP/Controller/InquiryController.php, line 42] Code Context InquiryController::index() - APP/Controller/InquiryController.php, line 42 ReflectionMethod::invokeArgs() - [internal], line ?? Controller::invokeAction() - CORE/Cake/Controller/Controller.php, line 499 Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 193 Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 167 [main] - APP/webroot/index.php, line 117
試したこと
・foreach文で記入を試みた。(下記コード)
※エラーが出ました。またechoを使用するとメールではなく、サイトの方に文章が表示されてしまいました。
"■タイトル\n". $this->request->data['InquiryMaster']['contents']=array('1','2','3','4','5'); foreach($this->request->data['InquiryMaster']['contents'] as $val){ echo $val."\n\n";}
CakePHPのバージョン
2.10.19
現状
私が初心者というのもあり、サイトを色々検索しましたがよくわからずここまで来ています。
また、既存でできている部分をコピーして持ってきたり、編集したりして勉強をしている状態です。
そのため、まるまる私が記述したコードではありません。
情報として足りない部分ありましたらご教授お願いいたします。