- ベストアンサー
Javascript変数にHTMLソースを代入する方法
- Javascript変数にHTMLソースを代入する方法について調べました。
- Google mapのバルーン表示でHTMLのテーブルを表示したいという要望です。
- innerHTMLを使用してもうまく表示されないとのことで、他の方法を模索しています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
申し訳ないですが、意味がよくわかりません。 javascriptでDBはアクセスできないですよね。 PHPの話ですよね ? <?php $html=html_entity_decode($address); ?> ですか??
その他の回答 (3)
- yyr446
- ベストアンサー率65% (870/1330)
検討はずれかもしれませんが... <script type="text/javascript" charset="utf-8"> - - - - - - - - - - <?php $connection=mysql_connect (localhost, $username, $password); mysql_select_db($database, $connection); $result = mysql_query("SELECT * FROM markers WHERE 1"); while ($row = @mysql_fetch_assoc($result)){ $name=$row['name']; $address=$row['address']; $address=html_entity_decode($address); $lat=$row['lat']; $lng=$row['lng']; $type=$row['type']; } print <<<DOCEND //Javascript function createMarker() { var point=new GLatLng($lat,$lng); var marker = new GMarker(point, customIcons[$type]); var html = "<b>" + $name + "</b><br/>" + $address; GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(html); }); return marker; } DOCEND; ?> - - - - - - - - var marker=createMarker(); map.addOverlay(marker); - - - - - - - - </script>
お礼
あー、お礼と報告をさせて頂いている間に、参考コードまで…申し訳ありません。 せっかく書いていただいたコードが全部理解出来るように必ずしたいと思います。 重ね重ね有難うございました。
- yyr446
- ベストアンサー率65% (870/1330)
No.1補足です。質問を読み直してみて、 テーブルってもしかして、PHP/MySQLのDBのテーブルの事で、 nameとかaddressはその列名のことですかねえ。 サンプルどおり、DBからXMLを出力するPHPを準備した上で、 GDownloadUrlでXMLを取り込んだ上で、 function createMarker(point, name, address, type) { var marker = new GMarker(point, customIcons[type]); var html = "<b>" + name + "</b> <br/>" + address; GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(html); }); return marker; } としても、うまくいかないのですか?
お礼
回答有難うございます。 私の質問が不明瞭で申し訳ありません。 やろうとしている事は、 MySQLのDBのフィールド address に<table> </table>を含む文字列を入れ、 以上のファンクションで取り出した際に、excelのような格子付で表示したいのです。 私のふたしかな理解では、var html = "<b>" + name + "</b> <br/>" + address; で読み出した際に、"<table><tr><td>1</td></tr><tr><td>2</td></tr></table>" のように、" " 付になってしまっているような気がします。
- yyr446
- ベストアンサー率65% (870/1330)
marker.openInfoWindow(DOM要素) 又は marker.bindInfoWindow(DOM要素) を使います。 var content=document.createElement('div'); content.innerHTML='<b>' + name + '</b><br/>'; content.append.appendChild(address); marker.openInfoWindow(content);
お礼
回答有難うございます。 content.append.appendChild(address); の部分を理解出来るように勉强したいと思います。
お礼
> PHPの話ですよね ? のお一言で、ハッと気付かされました。 仰る通りに、PHPの部分のコードを覗いて、 前 echo 'address="' . parseToXML($row['address']) . '" '; (parseToXMLは独自ファンクション) 後 echo 'address="' . htmlspecialchars($row['address']) . '" '; 以下のように変更したら、希望通りに動きました。 基本が全然分かっていないのを思い知らされました。 これからしっかり勉强したいと思います。ご親切に教授有難うございました。