チェック項目にすべてチェックがついていない場合、
次の画面でdl自体を非表示にしたいと考えおりました。
$error[] = にnoneという値を入れて、dl部分に表示させようとやってみたのですが、
何も付与されません。
もし、checkとcheck01とcheck02の全てが空の場合クラス名が付与されて、
dl自体が非表示になるという形式にしたいのですが。
こちらがinput.phpのコードとなります。
php
1<form id="mail-form" action="./confirm.php" method="post"> 2 <dl> 3 <dt>テキスト</dt> 4 <dd> 5 <ul><li> 6 <input type="checkbox" name="check" id="check" value="テキスト1">テキスト1</li> 7 <li><input type="checkbox" name="check01" id="check01"value="テキスト2">テキスト2</li> 8 <li><input type="checkbox" name="check02" id="check02"value="テキスト3">テキスト3</li> 9 </ul> 10 </dd> 11 </dl> 12 13 <p class="center"> 14 <button type="input-submit-check" id="input-submit-check" value="input-submit-check" name="input-submit-check">同意し、確認画面へ</button> 15 </p> 16 </form>
こちらが次のページのconfirm.phpのコードとなります。
php
1<?php 2session_start(); 3if(!$_POST){ 4 header('Location: ./input.php'); 5} 6$_SESSION = $_POST; 7 8 $postData = $_POST; 9 $page_flag = 0; 10 $error = array(); 11 function formValidation($postData) { 12 13 $error = array(); 14 if(empty($postData['check']) && empty($postData['check01']) && empty($postData['check02'])){ 15 $error[] = "none"; 16 } 17 return $error; 18 } 19 $error = formValidation($postData); 20 21?> 22<!doctype html> 23<html> 24<head> 25 26<meta charset="utf-8"> 27<title>テスト</title> 28 29</head> 30<body> 31<div id="wrap"> 32 33 <div class="entry"> 34 <h1>確認</h1> 35 </div> 36 37 <div id="contents_wrap" class="contents"> 38<form id="confirm" action="./thanks.php" method="post"> 39 40 41 42<?php if($page_flag == 1): ?> 43 <dl class="error <?php foreach( $error ): ?>"> 44<?php endif; ?> 45 <dt> 46 <label>テキスト</label> 47 </dt> 48 <dd><?php echo htmlspecialchars($postData['check'], ENT_QUOTES, 'UTF-8'); ?><?php echo htmlspecialchars($postData['check01'], ENT_QUOTES, 'UTF-8'); ?><?php echo htmlspecialchars($postData['check02'], ENT_QUOTES, 'UTF-8'); ?></dd> 49 </dl> 50 51 52 </form> 53 54 </div> 55 </div> 56</div> 57 58</body> 59</html>
回答1件
あなたの回答
tips
プレビュー