質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

434閲覧

チェックボックスを作ったのですが、少しエラーが出てしまいます。

rink

総合スコア80

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/08/27 09:10

html phpの勉強をしているもので、初心者です。

チェックボックスを作ってみました。そこで、

php

1<html> 2 <body> 3 <h1>checkbox</h1> 4 <p>select your favorite colors(multiple selection is possible)</p> 5 <form action = 'sample6.php' method = "POST"> 6 <p> 7 <input type = 'checkbox' name = 'colors[]' value = '青'>8 <input type= "checkbox" name = "colors[]" value = "赤">9 <input type="checkbox" name="colors[]" value="黄">10 <input type="checkbox" name="colors[]" value="緑">11 <input type="checkbox" name="colors[]" value="紫">12 <input type="checkbox" name="colors[]" value="白">13 <input type="checkbox" name="colors[]" value="橙">14 </p> 15 <input type = 'submit' value = '送信する'> 16 </body> 17</html> 18

(sample5.php)
これが選択画面です。これは問題ないのですが、

php

1<?php 2 $colors = $_POST['colors']; 3 var_dump($colors); 4 if(!isset($colors)) 5 { 6 $err = 'null is out'; 7 } 8?> 9 10<html> 11 <head> 12 <meta charset = 'utf-8'> 13 </head> 14 <body> 15 <h1>this is recive page</h1> 16 <h3>your favorite colors</h3> 17 <ul> 18 <?php 19 if(!isset($err)) 20 { 21 foreach($colors as $var) 22 { 23 ?> 24 <li><?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8'); ?></li> 25 <?php 26 } 27 } 28 else 29 { 30 echo $err; 31 } 32 ?> 33 </ul> 34 <p>your favorite colors are <?php echo implode(' and ', $colors).'.'; ?></p> 35 </body> 36</html> 37

(sample6.php)
これが受信ページです。
sample5.phpで、ちゃんと色を選択すれば問題ないのですが、何も選ばなかった時にエラーメッセージを出力しようと、sample6.phpの先頭部分を書いたのですが、

Notice: Undefined index: colors in C:\xampp\htdocs\sample6.php on line 2

となってしまいます。おそらく、何も選択しなかった場合、上の$colorsに問題が発生しているものと思われるのですが、どのようにすればよいかが分かりません。 
どなたか、よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

一つも選ばなかったら、そりゃ$_POST['colors']も存在しませんので、
存在しないキーの配列を参照したから、「Notice: Undefined index: colors 」なのです。

存在しないかもしれないキーの配列を参照する前に、
if (isset($_POST['colors'])) {
などとして存在をチェックしてからアクセスするか、
yambejpさんの回答にあるようにfilter_input()関数を介してしまうのも手です。

投稿2019/08/27 10:31

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rink

2019/08/27 11:16

ご回答ありがとうございます! なるほど…、そうですよね。。。
guest

0

ベストアンサー

filter_input

PHP

1<?PHP 2 $colors = filter_input(INPUT_POST,'colors',FILTER_DEFAULT,FILTER_REQUIRE_ARRAY); 3 var_dump($colors); 4?> 5<form method = "POST"> 6 <p> 7 <label><input type="checkbox" name="colors[]" value=""></label> 8 <label><input type="checkbox" name="colors[]" value=""></label> 9 <label><input type="checkbox" name="colors[]" value=""></label> 10 <label><input type="checkbox" name="colors[]" value=""></label> 11 <label><input type="checkbox" name="colors[]" value=""></label> 12 <label><input type="checkbox" name="colors[]" value=""></label> 13 <label><input type="checkbox" name="colors[]" value=""></label> 14 </p> 15 <input type = 'submit' value = '送信する'> 16 </body> 17</html>

投稿2019/08/27 09:17

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rink

2019/08/27 10:12

ご回答ありがとうございます! このようなやり方があるのですね… 勉強不足でした!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問