Make note

筋トレとアジャイル(カイゼン)とエンジニアリングの記事を投稿する、ムキムキエンジニアを目指しているやつのブログです。

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(',');

 

どうやらまとめて行うと正常に機能してくれないらしい。

失敗例の方だと読み取った値がそのまま表示される。

 

これは値を読み取るタイミングの問題なのか、それとも値の型の問題なのか、もしくは別の問題なのか。

原因がハッキリとしなかったので、モヤモヤする。