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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1635閲覧

<jQuery>timeline.php内の変数の値をjQueryでコンソールに表示したい

hc130203

総合スコア12

PHP

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2019/02/02 11:57

前提・実現したいこと

PHPで掲示板の作成を行なっています。
timeline.phpでhiddenで隠していた値からjQueryを用いて値を取得しコンソールに表示したいのですが、
投稿ID(feed_id)は表示されるのですが、サインインユーザーID(user_id)が何も表示されません。

ご教示お願いします。

発生している問題・エラーメッセージ

(コンソール内の表示 app.js:6 6 ←投稿IDは正しく表示されています(6) app.js:7 ←何も表示されません

該当のソースコード

(timeline.php) <?php session_start(); require('dbconnect2.php'); $sql = 'SELECT*FROM `users` WHERE `id`=?'; $data = [$_SESSION['LearnSNS_self']['id']]; $stmt = $dbh->prepare($sql); $stmt->execute($data); $signin_user = $stmt->fetch(PDO::FETCH_ASSOC); // echo '<pre>'; // var_dump($signin_user); // echo '</pre>'; // サインインなしでタイムラインに入れないようにする if(!isset($_SESSION['LearnSNS_self']['id'])){ header('location: signin.php'); exit(); } $errors = []; // ユーザーが投稿ボタンを押したとき if(!empty($_POST)){ $feed = $_POST['feed']; // 空チェック if($feed != ''){ // 投稿処理 $sql = 'INSERT INTO `feeds` (`feed`, `user_id`, `created`) VALUES(?,?,NOW())'; $data = [$feed, $signin_user['id']]; $stmt = $dbh->prepare($sql); $stmt->execute($data); header('location: timeline.php'); exit(); }else{ $errors['feed'] = 'blank'; } } // 何ページ目を開いているかを取得 if(isset($_GET['page'])){ $page = $_GET['page']; }else{ $page = 1; } // 取得するデータをページ毎に変更する const CONTENT_PER_PAGE = 5; // -1など、ページ数として不正な値を渡された場合の対策 $page = max($page, 1); // ヒットしたレコードの数を取得 $sql_count = 'SELECT COUNT(*)AS `cnt` FROM `feeds`'; $stmt_count = $dbh->prepare($sql_count); $stmt_count->execute(); $record_cnt = $stmt_count->fetch(PDO::FETCH_ASSOC); // 最後のページが何ページ目になるか算出 // 最後のページ=取得したページ数÷1ページあたりに表示する件数 $last_page = ceil($record_cnt['cnt'] / CONTENT_PER_PAGE); // 最後のページより大きい数を渡された場合 $page = min($page, $last_page); // 投稿内容表示 $start = ($page - 1)*CONTENT_PER_PAGE; // $sql = 'SELECT `feeds`.*,`users`.`name`,`users`.`img_name` FROM `feeds` LEFT JOIN `users` ON `feeds`.`user_id` = `users`.`id` ORDER BY `feeds`.`created` DESC LIMIT '. CONTENT_PER_PAGE .' OFFSET '. $start; // $data = []; // $stmt = $dbh->prepare($sql); // $stmt->execute(); // 検索を行った場合の遷移 // echo '<pre>'; // var_dump($search_word); // echo '</pre>'; if(isset($_GET['search_word'])){ // 遷移する $search_word = $_GET['search_word']; $sql = 'SELECT `feeds`.*,`users`.`name`,`users`.`img_name` FROM `feeds` LEFT JOIN `users` ON `feeds`.`user_id` = `users`.`id` WHERE `feeds`.`feed` LIKE "%$search_word%" ORDER BY `feeds`.`created`'; // $data[] = $search_word; $data = []; $stmt = $dbh->prepare($sql); $stmt->execute(); }else{ // その他の遷移 $sql = 'SELECT `feeds`.*,`users`.`name`,`users`.`img_name` FROM `feeds` LEFT JOIN `users` ON `feeds`.`user_id` = `users`.`id` ORDER BY `feeds`.`created` DESC LIMIT '. CONTENT_PER_PAGE .' OFFSET '. $start; $data = []; $stmt = $dbh->prepare($sql); $stmt->execute(); } // 投稿内容表示継続にはforeach使う。その時$feeds使うからまずfeedsに全ての情報を入れる $feeds = []; while(true){ $record = $stmt->fetch(PDO::FETCH_ASSOC); if($record == false){ break; } $comment_sql = 'SELECT `comments`.*,`users`.`name`,`users`.`img_name` FROM `comments` LEFT JOIN `users` ON `comments`.`user_id` = `users`.`id` WHERE `feed_id`=?'; $comment_data = [$record['id']]; $comment_stmt = $dbh->prepare($comment_sql); $comment_stmt->execute($comment_data); $comments = []; while(true){ $comment = $comment_stmt->fetch(PDO::FETCH_ASSOC); if($comment == false){ break; } $comments[] = $comment; } $record['comments'] = $comments; $comment_cnt_sql = 'SELECT COUNT(*)AS `comment_cnt` FROM `comments` WHERE `feed_id`=?'; $comment_cnt_data = [$record['id']]; $comment_cnt_stmt = $dbh->prepare($comment_cnt_sql); $comment_cnt_stmt->execute($comment_cnt_data); $comment_cnt_result = $comment_cnt_stmt->fetch(PDO::FETCH_ASSOC); $record['comment_cnt'] = $comment_cnt_result['comment_cnt']; $feeds[] = $record; } ?> <?php include('layouts/header.php'); ?> <body style="margin-top: 60px; background: #E4E6EB;"> <?php include('navbar.php'); ?> <span hidden id="signin-user"><?php echo $signin_user['id']; ?></span> <div class="container"> <div class="row"> <div class="col-xs-3"> <ul class="nav nav-pills nav-stacked"> <li class="active"><a href="timeline.php?feed_select=news">新着順</a></li> <li><a href="timeline.php?feed_select=likes">いいね!済み</a></li> </ul> </div> <div class="col-xs-9"> <div class="feed_form thumbnail"> <form method="POST" action=""> <div class="form-group"> <textarea name="feed" class="form-control" rows="3" placeholder="Happy Hacking!" style="font-size: 24px;"></textarea><br> <?php if(isset($errors['feed']) && $errors['feed'] == 'blank'): ?> <p class="text-danger">投稿内容を入力してください。</p> <?php endif; ?> </div> <input type="submit" value="投稿する" class="btn btn-primary"> </form> </div> <?php foreach($feeds as $feed): ?> <div class="thumbnail"> <div class="row"> <div class="col-xs-1"> <img src="user_profile_img/<?php echo $feed['img_name']; ?>" width="40px"> </div> <div class="col-xs-11"> <a href="#" style="color: #7f7f7f;"><?php echo $feed['name']; ?></a> <?php echo $feed['created']; ?> </div> </div> <div class="row feed_content"> <div class="col-xs-12"> <span style="font-size: 24px;"><?php echo $feed['feed']; ?></span> </div> </div> <div class="row feed_sub"> <div class="col-xs-12"> <span hidden class="feed-id"><?php echo $feed['id']; ?></span> <button class="btn btn-default js-like"><span>いいね!</span></button> いいね数: <span class="like-count">10</span> <a href="#collapseComment<?php echo $feed['id']; ?>" data-toggle="collapse" aria-expanded="false"><span>コメントする</span></a> <span class="comment-count">コメント数:<?php echo $feed['comment_cnt']; ?></span> <?php if($feed['user_id'] == $signin_user['id']): ?> <a href="edit.php?feed_id=<?php echo $feed['id'] ?>" class="btn btn-success btn-xs">編集</a> <a onclick="return confirm('ほんとに消すの?');" href="delete.php?feed_id=<?php echo $feed['id'] ?>" class="btn btn-danger btn-xs">削除</a> <?php endif; ?> </div> <?php include('comment_view.php'); ?> </div> </div> <?php endforeach; ?> <div aria-label="Page navigation"> <ul class="pager"> <?php if ($page == 1): ?> <li class="previous disabled"><a><span aria-hidden="true">&larr;</span> Newer</a></li> <?php else: ?> <li class="previous"><a href="timeline.php?page=<?= $page - 1; ?>"><span aria-hidden="true">&larr;</span> Newer</a></li> <?php endif; ?> <?php if ($page == $last_page): ?> <li class="next disabled"><a>Older <span aria-hidden="true">&rarr;</span></a></li> <?php else: ?> <li class="next"><a href="timeline.php?page=<?= $page + 1; ?>">Older <span aria-hidden="true">&rarr;</span></a></li> <?php endif; ?> </ul> </div> </div> </div> </div> </body> <?php include('layouts/footer.php'); ?> </html> (app.js) $(function(){ $(document).on('click','.js-like',function(){ var feed_id = $(this).siblings('.feed-id').text(); var user_id = $('#signin-user').text(); console.log(feed_id); console.log(user_id); }); });

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

m.ts10806

2019/02/02 12:14

そもそもですが、ブラウザで画面表示して「ソースを表示」したところに該当箇所に想定の情報は入っているんでしょうか。
hc130203

2019/02/03 02:47

「ソース表示」で確認したところ、関係ないとおもっていたincludeしていたnavbar.phpにhiddenで値を設定すると、きちんと取得できました! ありがとうございます!!
m.ts10806

2019/02/03 05:48

まあ、結局画面はhtmlが出てくるので正しく出てなかったらそれはやりたいことにはつながりませんしね
guest

回答1

0

自己解決

includeしていたnavbar.phpにhiddenで値を設定すると、きちんと取得できました!
(「ソースを表示」でコードを確認)

投稿2019/02/03 02:51

hc130203

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問