#前置き
本のタイトルと番号を管理するプログラムを制作しています。
DBは使用していないため、本のタイトルと番号はプログラムで管理しています。
![
#実現したいこと
このプログラムに検索機能をつけたい。
例:検索フォームに源氏物語と入力し検索ボタンを押す。
➡️ 源氏物語の書籍のみが表示される。
#コード詳細
book.php(本に関するクラス)
PHP
1<?php 2class Book { 3 4 public $number; 5 public $name; 6 7 public function __construct($number, $name) { 8 $this->number = $number; 9 $this->name = $name; 10 } 11} 12?> 13```data.php(本の名前と番号) 14```PHP 15<?php 16require_once('book.php'); 17 18$book01 = new Book(01, '吾輩は猫である'); 19$book02 = new Book(02, 'ハリーポッター'); 20$book03 = new Book(03, '源氏物語'); 21$book04 = new Book(04, 'こころ'); 22 23$books = array($book01, $book02, $book03, $book04); 24?>
index.php(検索画面)
PHP
1<?php require_once('data.php') ?> 2 3<!DOCTYPE html> 4<html> 5<body> 6 7 <form method="POST" action="find.php"> 8 <label>タイトルで検索</label><br/> 9 <input type="text" name="data" /><br /> 10 <input type="submit" value="送信" /> 11 </form> 12 13 <table> 14 <tr> 15 <th>番号</th> 16 <th>タイトル</th> 17 </tr> 18 19 <?php foreach ($books as $book): ?> 20 <tr> 21 <td><?php echo $book->number ?></td> 22 <td><?php echo $book->name ?></td> 23 </tr> 24 <?php endforeach ?> 25 </table> 26</body> 27</html>
find.php(検索後の画面)
PHP
1<?php require_once('data.php') ?> 2 3<!DOCTYPE html> 4<html> 5<body> 6<?php foreach ($books as $book): ?> 7 if ($book->name == $_POST["data"]){ 8 <?php echo $book->name ?> 9 } 10<?php endforeach ?> 11</body> 12</html>
#問題点
find.phpにて検索フォームから送られてきた文字列と本のタイトルが一致した時、本の名前を表示させるコードを記述したが上手く動かない。
分かる方がいましたら、ご教示いただきたく思います。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー