CakePHPにて、コントローラーでpreg_matchを使い入力チェクを行った後に、エラーがあれば入力された値を持ったまま入力画面へ戻り(render)、初期値としてセット。エラーがなければ確認画面に飛ぶ処理を作ろうとしています。
PHP(コントローラー:入力チェック処理)
1 private function __preg_match($hankakuei) { 2 if (preg_match ( "/^[a-zA-Z]+$/", $hankakuei ) !== 0) { 3 $moge =$hankakuei; 4 // 値が取れているかの確認 5 echo print_r ( $moge, true ); 6 if (preg_match ( "/^[a-zA-Z]+$/", $moge ) !== 0) { 7 } 8 } 9 }
PHP(コントローラー:確認画面処理)
1 public function contact_2() { 2 // お問い合わせフォーム確認画面 3 $this->autoRender = true; 4 $this->autoLayout = true; 5 6 // 配列を返す 7 $errors = $this->Contact->invalidFields (); 8 9 // 入力された値を持ってくる 10 $input_name = $this->request->data ( 'input_name' ); 11 $honbun = $this->request->data ( 'honbun' ); 12 $zenkaku = $this->request->data ( 'zenkaku' ); 13 $mailaddress = $this->request->data ( 'mailaddress' ); 14 $hankakuei = $this->request->data ( 'hankakuei' ); 15 $hankakusuu = $this->request->data ( 'hankakusuu' ); 16 17 // 入力された値をセット 18 $this->set ( 'input_name', $input_name ); 19 $this->set ( 'honbun', $honbun ); 20 $this->set ( 'zenkaku', $zenkaku ); 21 $this->set ( 'mailaddress', $mailaddress ); 22 $this->set ( 'hankakuei', $hankakuei ); 23 $this->set ( 'hankakusuu', $hankakusuu ); 24 25 // 入力チェック 26 $moge = $this->__preg_match ( $hankakuei ); 27 }
PHP(view:入力画面)
1 <form action="Contact/contact_2" method="post"> 2 3 <p>名前</p> 4 <input type="text" name="input_name" /> 5 <br /> 6 7 <p>本文</p> 8 <textarea name="honbun" rows="4" cols="40"></textarea> 9 <br /> 10<!-- JavaScriptを使った入力チェック --> 11<div class="zenkaku" id="zenkaku"> 12 <p>全角文字</p> 13 <input type="text" name="zenkaku" value=""/> 14 <br /> 15</div> 16<div class="mailaddress" id="mailaddress"> 17 <p>メールアドレス</p> 18 <input type="text" name="mailaddress" value=""/> 19 <br /> 20</div> 21 22 23 24<!-- PHPを使った入力チェック --> 25<div class="hankakuei" id="hankakuei"> 26 <p>半角英字</p> 27 <input type="text" name="hankakuei" value=""/> 28 <br /> 29</div> 30 31<div class="hankakusuu" id="hankakusuu"> 32 <p>半角数字</p> 33 <input type="text" name="hankakusuu" value=""/> 34 <br /> 35</div> 36 37 <input type="submit" value="送信" /> 38 39 40 </form>
PHP(view:確認画面)
1<body> 2 3 4<h2>確認画面</h2> 5 <form action="contact_3" method="post"> 6 <?php // TODO 入力された値を表示 ?> 7 <input type ="hidden" name = "input_name" value ="<?= $input_name ?>" /> 8 <input type ="hidden" name = "honbun" value ="<?= $honbun ?>" /> 9 <input type ="hidden" name = "zenkaku" value ="<?= $zenkaku ?>" /> 10 <input type ="hidden" name = "mailaddress" value ="<?= $mailaddress ?>" /> 11 <input type ="hidden" name = "hankakuei" value ="<?= $hankakuei ?>" /> 12 <input type ="hidden" name = "hankakusuu" value ="<?= $hankakusuu ?>" /> 13 14 <p>名前</p> 15 <p><?= $input_name ?></p> 16 17 <p>本文</p> 18 <?php // TODO 入力された値を表示 ?> 19 <p><?= $honbun ?></p> 20 21 <p>全角文字</p> 22 <p><?= $zenkaku ?></p> 23 <br /> 24 25 <p>メールアドレス</p> 26 <p><?= $mailaddress ?></p> 27 <br /> 28 29 <p>半角英字</p> 30 <p><?= $hankakuei ?></p> 31 <br /> 32 33 <p>半角数字</p> 34 <p><?= $hankakusuu ?></p> 35 <br /> 36 37 38 39 <input type = "submit" value ="送信" /> 40 </form> 41 <a href="contact_1">戻る</a> 42 43</body>
renderを使えばできるのではないかと考えたのですが、頭の中でまとまりません。
どなたか、ご存知な方いらっしゃいましたら教えていただけると助かります。
回答2件
あなたの回答
tips
プレビュー