phpの変数をjQueryに渡す
達成目標
別ページからPOSTされたデータをPHPで受け取り、その後jQueryに渡す。
テストケース
①scriptにdataとして設定し、jQueryで読み取る
<script type="text/javascript"
data-src="<?php echo $src?>"
data-alt="<?php echo $src?>"
></script>
②metaにdataとして設定し、jQueryで読み取る
<meta name="src" content="src" data-src="<?php echo $_POST['src'];?>">
<meta name="alt" contennt="alt" data-alt="<?php echo $_POST['alt'];?>">
これ、そもそもルールとして間違ってる気が…。
③metaにcontentとして設定し、jQueryで読み取る
<meta name="data-src" content="<?php echo $_POST['src'];?>">
<meta name="data-alt" content="<?php echo $_POST['alt'];?>">
コードが綺麗になるけど、これもルールとしてどうなんだろうか…。
HTMLクリックリファレンスさんによると、
<META>タグはその文書に関する情報(メタ情報)を指定して、 ブラウザや検索ロボットに知らせるためのタグ
となっている。
この書き方、かなり怪しい。
結果
①scriptにdataとして設定し、jQueryで読み取る
→失敗。
そもそもヘッダー情報を共通化している状態では向いていないことが判明。
重ね書きを回避して一応試してみるが、dataを上手く読み込んでくれない。
原因はなんだろう…。
調査を色々してみるが実りがなく、断念。
②metaにdataとして設定し、jQueryで読み取る
→失敗。
こちらも上手く読み込んでくれない。
まぁ、ルール的にどうかと思うところもあったので当然と言えば当然か。
③metaにcontentとして設定し、jQueryで読み取る
→成功。
正常に読み込んでくれました。
成功はしたものの、ルールとして怪しい気がする…。
他にスマートなやりかたはないものだろうか。
おまけ「split()が上手く働いてくれないタイミング」
ちょっとハマったのでメモ。
HTMLから読み取った情報(CSV形式)を文字列に変換する時にハマった書き方。
失敗例
var src= $('meta[name = data-src]').attr('content').split(',');
成功例
var src= $('meta[name = data-src]').attr('content');
src.split(',');
どうやらまとめて行うと正常に機能してくれないらしい。
失敗例の方だと読み取った値がそのまま表示される。
これは値を読み取るタイミングの問題なのか、それとも値の型の問題なのか、もしくは別の問題なのか。
原因がハッキリとしなかったので、モヤモヤする。