js エラー 「識別子、文字列または数がありません」

ボタンをクリックされたら ajax を使用してデータを取得し、

php 側でテーブル等のタグを全部生成して返し

javascript では返ってきたデータを jquery の html メソッドで

表示する、というプログラムを作っていた。

 

掲題のエラーは jquery.js 内の

elem.innerHTML = value;

の箇所で発生していた。

 

調べた所、掲題のエラーは IE6 や IE7 で

var hoge = { arg1, arg2, };

のようにarg2 の後ろに余分なカンマが

ある場合に起きるエラー、とのことだった。

 

今回のエラーとの関連は余りなさそうだ。

 

PG を調べた所、php でテーブルタグを生成するのに

ヒアドキュメントを使用していた。

$data = <<<DATA

<table>

<tr><td></td></tr>

</table>

DATA;

のような感じ。

ループの中でタグにid を振るときに

ヒアドキュメントの中で

for($i = 0; $i < count($data); $i++){

$ret_data = <<<DATA

~~ 中略 ~~

<input type=”text” id=”hoge_{($i + 1)}”>

のように括弧を駆使していたが、

どうやらこれがエラーの素だったようだ。

ここの所を

<input type=”text” id=”hoge_%u”>

として

$data = sprintf($data, ($i + 1));

のようにsprintf() で置換するように修正することでエラーが発生しなくなった。

へぇ~。

 

コメントは受け付けていません。