• 締切済み

チェックを入れたページを表示するには

こんばんわ。 現在、仮想で検索プログラムをチームで作成しています。 その中で、閲覧履歴を保存して別のページで表示する、というものを作る事になりました。検索してそのページに飛ぶのではなく、閲覧するページにはチェックボックスを置いて、そこにチェックを入れれば、お気に入り登録され、別のページに表示される。表示されたページのリンクを押せば、目的のページに飛べる、といった感じにしたいのですが可能でしょうか?可能ならば、やり方を教えて下さい。 ちなみにWebサーバーはApache,DBはMySQL,プログラミングにはPHPとHTMLを使用し、OSはWindowsXPです。 説明下手で分かりづらいとは思いますが、どうかお願いします。

みんなの回答

回答No.3

私の案内した、識別用のIDというのは、検索されてくる情報一つ一つに付加される連番なりユニーク(固有の)番号をさします。 ログインした際に引き回されるであろうセッション情報に含まれているユーザIDはまた別途必要です。 フォームから飛んできた情報(つまりPOST値)は、当然データベースなどに保存する必要がありますが、ここまでは良いでしょうか。 データベースへのデータの保存方法が分からないということですが、システムの要件にMySQLとありますので、SQLのINSERT文で該当テーブルに保存すればよいのではないでしょうか。 必要なテーブルは最低限 ID(PRIMARY KEY) ユーザID 検索結果の識別ID があればよいのではないでしょうか。 複数チェックされた場合は、その分量だけINSERT文を発行する、と。

回答No.2

了解しました。 であれば、検索結果ページに関してなんですが、検索されるサイトには、何か識別用のIDとかつけてますか?それ次第で多少実装が変わるんですが とりあえず、まずは、検索結果ページをformタグで大枠を囲んでやって、表示されるリンクタグかなんかの横に<input type="checkbox" name="fvt[]" value="<?php echo $id?>">($idは識別用のIDとかまぁURLとか) を常にくっつけてやります。 で、formタグの閉じる前アタリに<input type="submit" value="チェックしたサイトをお気に入りに登録" /> なんて感じのボタンを配置してやります。 で、formタグのaction属性に記載した受け取り用のPHPに <?php if(strtoupper($_SERVER['REQUEST_METHOD']) == 'POST'){ if(isset($_POST['fvt'] && is_array($_POST['fvt'])){ $fvt = $_POST['fvt']; //後は配列に保存されているお気に入り登録用IDを取得してデータベースとかに保存+ちゃんとどのユーザかを識別 } } ?> といった感じでやってやればよいと思います。

aria00moon
質問者

補足

追加質問いたします。 この検索システム、範囲が学校内だけで、ログイン時のIDは学生番号、PWは生年月日下六桁と、予め生徒個人毎に割り振られています。 それを識別用IDとしては使用出来るのでしょうか?出来るのであればそのやり方をお願いします。 それと、その識別用IDなどを取得し、データベースに保存すると言うのは具体的にどうすれば良いのでしょうか? こんな事まで聞いてきて、面倒だと思うでしょうが、私にはさっぱりわからなくてどうしようもない状態です。お手数をおかけしますがどうかお願いします。

回答No.1

検索プログラムというものの詳細をもう少し教えてください。 会員情報(ID/パスとか)を入力してログインさせるものなのでしょうか。 お気に入り登録とのことですので、ある個人が検索ページで検索をして、自分の気に入ったページをお気に入り登録し、その個人だけが、後々そのお気に入りページで自分が登録したものだけ表示する。 ということですか。

aria00moon
質問者

補足

回答ありがとうございます。 回答者様のおっしゃる通り、IDとパスワードでログインし、お気に入り登録したページを後々お気に入りページで自分が登録したものだけ表示できるようにしたいです。 よろしくお願いします。