• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:リンクをクリックした時にカラムの値を取得するには?)

リンクのクリックでカラムの値を取得する方法

このQ&Aのポイント
  • PHP初心者の方がyoutube動画を紹介するサイトを作成している際、埋め込みタグの配置によりページが重くなる問題に直面しました。そこで動画の識別コードをデータベースに保存し、リンクをクリックした動画のみ別ページで再生する方法を模索しています。
  • 具体的には、youtubeの埋め込みタグに含まれる動画の識別コードを配列に格納し、foreach文を使用して動画を並べることはできました。しかし、リンクをクリックした時にどの動画が選択されたのかを判別し、それに応じてデータベースからカラムの値を取得するスクリプトが必要です。
  • さらに、将来的にはデータベース内の検索機能なども追加したいため、これらの機能を実現するためのスクリプトについてのアドバイスをいただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • yui-magic
  • ベストアンサー率62% (20/32)
回答No.1

クライアントサイドなのでPHPではなくJavaScriptで実装します。 以下ソースコードです(インデントが消されるので見にくいとは思いますが…)。 Chrome 1以上, Firefox 3.5以上, Safari 3.2以上, Opera 10以上, IE8以上で動作するはずです(querySelectorを実装しているかどうか)。 自由にカスタマイズして使ってください。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> </head> <body> <ul> <!--この部分をPHPのforeachで出力--> <li><a href="#U-42Fcw5eFc" class="open-youtube">動画1</a></li> <li><a href="#a4hcoYYSlXk" class="open-youtube">動画2</a></li> <li><a href="#OMpvHCPN2Qo" class="open-youtube">動画3</a></li> <!--end--> </ul> <iframe width="640" height="390" src="" frameborder="0" id="youtube-viewer" allowfullscreen></iframe> <script> var list = document.querySelectorAll("a.open-youtube"); for(var i = 0; i < list.length; i++){ var f = function(e){ if(e.preventDefault){ e.preventDefault(); }else{ //for IE e.returnValue = false; } var target = event.target || event.srcElement; console.log(target); var hash = target.getAttribute("href"); var url = "http://www.youtube.com/embed/" + hash.substring(1); document.getElementById("youtube-viewer").setAttribute("src", url); return false; }; if(document.addEventListener){ list[i].addEventListener("click", f); }else{ //for IE list[i].attachEvent("onclick", f); } } </script> </body> </html>

aqualight
質問者

お礼

遅くなりまして申し訳ありません。 プログラムを詳細に書いていただき非常に助かりました。 どうもありがとうございました。

関連するQ&A