foreach($arr as $item){
$result .= $item . "\n";
}このように、foreachを使って、$arrから値を順に取り出して処理をしています。つまり、この$arrは、配列なのです。選択された項目がすべて配列として渡されていたのですね。<select name="list1[]" size="5" multiple>複数項目が選択できるように「multiple」という属性が追加されています。が、ポイントはそこじゃありません。名前が、name="list1[]"と指定されています。"list1"ではなく、"list1[]"です。このように記述することで、このlist1の値は、一般的なテキストではなく、テキストの配列として渡されるようになるのです。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
<?php
if ($_POST != null){
$arr = $_POST['list1'];
$result = "";
foreach($arr as $item){
$result .= $item . "\n";
}
} else {
$result = "選択してね。";
}
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8" />
<title>sample page</title>
</head>
<body>
<h1>Hello PHP!</h1>
<pre><?php
echo htmlspecialchars($result);
?></pre>
<form method="post" action="./index.php">
<select name="list1[]" size="5" multiple>
<option value="Windows">Windows</option>
<option value="Mac OS">Mac OS</option>
<option value="Linux">Linux</option>
<option value="Android">Android</option>
<option value="iOS">iOS</option>
</select>
<input type="submit">
</form>
</body>
</html>
| << 前へ |