20200910 授業メモ おさらい問題演習 PHP 複数の値の取得と表示(チェックボックス)
授業内容
$error=[ ];の意味
<?php ?>と<body>を分けて記述する際に必要な配列
※<body>の中に<?php ?>を記述している場合は必要なし。
〇osarai_get04
-----------------------送信側------------------------
<!DOCTYPE html>
<html lang="ja">S
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<fieldset>
<legend>
<h1>口コミ</h1>
</legend>
<h2>名前</h2>
<input type="text" name="myname" placeholder="例)ゆーほ"><br>
<h2>メールアドレス</h2>
<!-- <input type="text" name="mail" placeholder="例)example@~" required><br> -->
<h2>評価</h2>
<dl>
<dd>
</dd>
</dl>
</fieldset>
<fieldset>
<h2>コメント</h2>
<textarea name="comment" cols="30" rows="10"></textarea><br>
<legend>
<h1>アンケート</h1>
</legend>
<h2>性別</h2>
<dl>
<dd>
</dd>
</dl>
<h2>年代</h2>
<select name="age" required>
</select><br>
<h2>OS</h2>
<dl>
<dd>
</dd>
</dl>
</form>
</form>
</fieldset>
</body>
</html>
-------------------受信側--------------------------
<!DOCTYPE html>
<html lang="ja">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<?php
echo '<h2>ばーだんぷ表示</h2>';
echo '<pre>';
var_dump($_GET['os']);
echo '</pre>';
echo '<h1>クチコミの結果</h1>';
echo '<h2>問1 名前の表示</h2>';
if (isset($_GET['myname'])) {
if (($_GET['myname']) == "") {
echo '名前が入力されていません';
};
if (mb_strlen($_GET['myname']) > 20) {
echo '20文字以内で入力してください';
} else {
echo ($_GET['myname']);
};
} else {
echo '名前の値が届いていません';
};
echo '<h2>アドレスの表示</h2>';
echo ($_GET['mail']);
echo '<h2>問2 評価の表示</h2>';
if (isset($_GET['rating'])) {
$ratNum = $_GET['rating'];
$ratList = [
"☆",
"☆☆",
"☆☆☆",
"☆☆☆☆",
"☆☆☆☆☆",
];
if (ctype_digit($_GET['rating'])) {
echo $ratList[$ratNum];
} else {
echo '評価の値が不正です';
};
} else {
echo '評価選択し忘れ。';
};
echo '<h2>問3 コメントの表示</h2>';
if (isset($_GET['comment'])) {
$cMnt = $_GET['comment'];
if (($_GET['comment']) == "") {
echo 'コメントが入力されていません';
};
if (mb_strlen($_GET['comment']) > 50) {
echo '50文字以内で入力してください';
} else {
echo nl2br($cMnt);
};
} else {
echo 'コメントの値が届いていません';
};
echo '<h1>アンケートの結果</h1>';
echo '<h2>問4 性別の表示</h2>';
if (isset($_GET['gender'])) {
$genderNum = $_GET['gender'];
$genderList = [
'男性',
'女性',
];
if (ctype_digit($_GET['gender']) && $_GET['gender'] < 2) {
echo $genderList[$genderNum];
} else {
echo "不正すんな";
}
} else {
echo "男女どっち?";
};
echo '<h2>年齢の表示</h2>';
// echo $_GET['age'];確認用
$ageNum = $_GET['age'];
$ageList = [
"",
"10代",
"20代",
"30代",
"40代",
"50代以上",
];
echo $ageList[$ageNum];
echo '<h2>問5 OSの表示</h2>';
※〇複数の値を取得し、表示させる方法の応用
$osList = [
];
if (isset($_GET['os'])) {
$osNum = $_GET['os'];
if (is_array($osNum)) {
echo '範囲外';
} else {
}
} else {
echo '整数じゃないし!!';
}
}
} else {
echo '配列じゃない';
}
} else {
echo 'OSが選択されていません';
};
?>
</body>
</html>
〇複数の値を取得し、表示させる方法
--------------------送信側--------------------
<!DOCTYPE html>
<html lang="ja">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>複数の値を送信</title>
</head>
<body>
<h1>複数の値を送信</h1>
<h2>趣味は?</h2>
<p>
</p>
</form>
</body>
</html>
--------------------受信側--------------------
<!DOCTYPE html>
<html lang="ja">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>複数の値を取得</title>
</head>
<body>
<h1>複数の値を取得</h1>
<?php
echo '<h2>1回目の出力</h2>';
echo '<pre>';
var_dump($_GET);
echo '</pre>';
echo '<h2>趣味の出力</h2>';
// 選択系パーツの確認
// 値が届いているかのチェック isset命令
// 値のデータ型の確認:ctype_digit関数
// 値の範囲:比較演算子
if (isset($_GET['hobby'])) {
$getHobby = $_GET['hobby'];
echo "<pre>";
var_dump($getHobby);
echo "</pre>";
$movieList = [
"音楽鑑賞",
"映画鑑賞",
"ドライブ",
"旅行",
"その他",
];
if (is_array($getHobby)) {
echo "不正だぞ";
} else {
echo
}
} else {
echo "不正だって";
}
}
}
} else {
echo "選択しろ";
};
echo '<h2>2回目の出力</h2>';
if (isset($_GET['hobby'])) {
$getHobby = $_GET['hobby'];
if (is_array($getHobby)) {
}
} else {
echo 'エラー:配列ではありません';
}
} else {
echo '趣味を選択していません';
}
?>
<p>
<a href="03-1_array_form.html">フォームに戻る</a>
</p>
</body>
</html>