ボタンをクリックされたら 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() で置換するように修正することでエラーが発生しなくなった。
へぇ~。