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

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

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

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

HTML

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

解決済

ステータスに合わせて、背景色を動的に変えたい。

bonchos22
bonchos22

総合スコア2

PHP

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

HTML

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

1回答

-1評価

0クリップ

194閲覧

投稿2022/06/10 13:40

編集2022/06/12 20:29

イメージ説明

キャプチャの各書籍の背景色をステータスの変化に合わせて白色→ステータスと同色に変えたいです。
読了の場合→緑 未読の場合→赤 などです。
調べたのですが、他のボタンを押したときに、違う場所の色を変える方法が
のっておらず、見当がつきません。
どなたか教えていただけませんでしょうか。

以下、PHP抜粋です。

抜粋

// ここにMySQLを使ったなんらかの処理を書く // bookshelf_form.phpから送られてくる書籍データの登録 if (array_key_exists('submit_add_book', $_POST)) { // まずは送られてきた画像をuploadsフォルダに移動させる $file_name = $_FILES['add_book_image']['name']; $image_path = './uploads/' . $file_name; move_uploaded_file($_FILES['add_book_image']['tmp_name'], $image_path); // データベースに書籍を新規登録する $sql = 'INSERT INTO books (title, image_url, status) VALUES(?, ?, "unread")'; $statement = mysqli_prepare($database, $sql); mysqli_stmt_bind_param($statement, 'ss', $_POST['add_book_title'], $image_path); mysqli_stmt_execute($statement); mysqli_stmt_close($statement);

省略

} // ステータス変更の処理 if (array_key_exists('submit_book_unread', $_POST)) { // 未読へ変更 $sql = 'UPDATE books SET status="unread" WHERE id=?'; // 実行するSQLを作成 $statement = mysqli_prepare($database, $sql); // セキュリティ対策をする mysqli_stmt_bind_param($statement, 'i', $_POST['book_id']); // id=?の?の部分に代入する mysqli_stmt_execute($statement); // SQL文を実行する mysqli_stmt_close($statement); // SQL文を破棄する } elseif (array_key_exists('submit_book_reading', $_POST)) { // 読中へ変更 $sql = 'UPDATE books SET status="reading" WHERE id=?'; $statement = mysqli_prepare($database, $sql); mysqli_stmt_bind_param($statement, 'i', $_POST['book_id']); mysqli_stmt_execute($statement); mysqli_stmt_close($statement); } elseif (array_key_exists('submit_book_finished', $_POST)) { // 読了へ変更 $sql = 'UPDATE books SET status="finished" WHERE id=?'; $statement = mysqli_prepare($database, $sql); mysqli_stmt_bind_param($statement, 'i', $_POST['book_id']); mysqli_stmt_execute($statement); mysqli_stmt_close($statement); } elseif (array_key_exists('submit_book_hold', $_POST)) { // 保留へ変更 $sql = 'UPDATE books SET status="hold" WHERE id=?'; $statement = mysqli_prepare($database, $sql); mysqli_stmt_bind_param($statement, 'i', $_POST['book_id']); mysqli_stmt_execute($statement); mysqli_stmt_close($statement); } // 未読数のカウント $sql = 'SELECT COUNT(*) as count FROM books where status = "unread"'; $result = mysqli_query($database, $sql); $record = mysqli_fetch_assoc($result); $count_unread = $record['count']; // 読中数のカウント $sql = 'SELECT COUNT(*) as count FROM books where status = "reading"'; $result = mysqli_query($database, $sql); $record = mysqli_fetch_assoc($result); $count_reading = $record['count']; // 読了数のカウント $sql = 'SELECT COUNT(*) as count FROM books where status = "finished"'; $result = mysqli_query($database, $sql); $record = mysqli_fetch_assoc($result); $count_finished = $record['count']; // 保留数のカウント $sql = 'SELECT COUNT(*) as count FROM books where status = "hold"'; $result = mysqli_query($database, $sql); $record = mysqli_fetch_assoc($result); $count_hold = $record['count']; // どのボタンを押したか(どのステータスで絞り込みをするか)を判定し、SELECT文を変更する if (array_key_exists('submit_only_unread', $_POST)) { // 未読ステータスの書籍だけを取得する $sql = 'SELECT * FROM books WHERE status="unread" ORDER BY created_at DESC'; } elseif (array_key_exists('submit_only_reading', $_POST)) { // 読中ステータスの書籍だけを取得する $sql = 'SELECT * FROM books WHERE status="reading" ORDER BY created_at DESC'; } elseif (array_key_exists('submit_only_finished', $_POST)) { // 読了ステータスの書籍だけを取得する $sql = 'SELECT * FROM books WHERE status="finished" ORDER BY created_at DESC'; } elseif (array_key_exists('submit_only_hold', $_POST)) { // 保留ステータスの書籍だけを取得する $sql = 'SELECT * FROM books WHERE status="hold" ORDER BY created_at DESC'; } else { // 登録されている書籍を全て取得する $sql = 'SELECT * FROM books ORDER BY created_at DESC'; } // いずれかの $sql を実行して $result に代入する $result = mysqli_query($database, $sql); // ステータスによってブックアイテムの背景色を変える。 // MySQLを使った処理が終わると、接続は不要なので切断する mysqli_close($database);

?>

イメージ説明

イメージ説明

イメージ説明

イメージ説明

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

PHP

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

HTML

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