「みんな教えて! 選手権!!」開催のお知らせ

動画が多いのでPHPの変数にIDを設定していますが、
javascriptと連携させたいのですがうまくいきません。

<div id="play1"><a href="#play1"><img src="https://i.ytimg.com/vi/<?= $play1 ?>/maxresdefault.jpg"></a></div>
<script src="//code.jquery.com/jquery.min.js"></script>
<script>
var play1: '<?=$play1?>';
$(function(){
$('#play1 a').on('click' , function(e){
e.preventDefault();//リンクの停止
$(this).parent().html('<iframe width="560" height="315" src="https://www.youtube.com/embed/'.document.write(play1).'?autoplay=1"></iframe>');
});
});
</script>

ネット記事を参考に var play1: '<?=$play1?>'; と
javascriptの変数にPHPの変数を代入し
'.document.write(play1).'とPHP風に付け足してみましたが
読み込まれません。

javascritpを外部ファイルに移動させたいので、
PHPの変数をjavascriptで呼び出すのが目的です。

質問者からの補足コメント

  • うーん・・・

    連結方法は + だということが分かったので早速 +document.write(play1)+ とやり変えたところ、play1の値だけが表示されてしまいました。

    式内の文字列として認識させたいのですが、
    document.write以外の指定方法は何がありますか?

      補足日時:2023/01/13 12:06

A 回答 (2件)

JavaScript で書くなら、


$(this).parent().html('<iframe width="560" height="315" src="https://www.youtube.com/embed/' + play1 + '?autoplay=1"></iframe>');

PHP で埋め込むなら、
$(this).parent().html('<iframe width="560" height="315" src="https://www.youtube.com/embed/<?=$play1?>?autoplay=1"></iframe>');
    • good
    • 0
この回答へのお礼

ありがとうございます。
自己解決しましたが、こちらのやり方でしたのでベストアンサーとさせていただきます。

お礼日時:2023/02/27 11:10

JavaScript の記述が間違っています。



誤 var play1: '<?=$play1?>';
正 var play1 = '<?=$play1?>';


<?=$play1?> が動作しない場合は、short_open_tag が Off になっているので、On に変更する必要があります。
    • good
    • 1
この回答へのお礼

ありがとうございます。
short_open_tagはONになっておりましたが、うまくいきませんでした。

'.document.write(play1).'の連結がだめなんでしょうか?
調べたいのですが、この部分をなんて検索すればいいかわかりません。
javascript 式 連結 などでしょうか?

お礼日時:2023/01/13 12:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報