重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

<script type="text/javascript" src="/init.php"></script>

楽天商品検索APIを利用したブログパーツの作成をPHPにて行っております。

公開されているサンプルソースを元にブログ上に指定したキーワードの
検索結果を表示させるPHPを作成しております。
HTML側にてPHPを呼び出す際に、PHPに記述したHTMLのソースを
document.writeで囲って出力しようとしておりますが上手くいきません。

呼び出し側
<script type="text/javascript" src="/test.php"></script>

■test.php
<?php

//PHPソース(省略)

$str_test = 'zzzzz';

header("Content-Type: application/x-javascript; charset=UTF-8");
echo "
document.write(\"<table width=\"100%\" border=0 cellspacing=1 cellpadding=5 style=\"font-size:12px;\">\")
document.write(\" <tr style=\"background-color: #ffffff;\">\")
document.write(\" <td width=\"8%\" align=\"center\" rowspan=\"4\">\")
document.write(\" abcde\")
document.write(\" </td>\")
document.write(\" <td width=\"8%\" align=\"center\" rowspan=\"4\">\")
document.write(\" $str_test\")
document.write(\" </td>\")
document.write(\" </tr>\")
document.write(\"</table>\")
";
?>

上記の様にダブルクォートをエスケープしたのですが
呼び出し側には何も表示されませんでした。
document.writeにて下記の様に記述した場合は表示されましたので
上記ソースの何処かが間違っているのは分かったのですが
そこから先に進めず困っております。

■表示された例
echo "
document.write(\"$str_test\")
";

解決策、別案などありましたらご教授いただけたら幸いです。
どうぞよろしくお願いいたします。

A 回答 (3件)

ダブルクォーテーションが競合していますね。



document.write("・・・"xxx"・・・");
みたいな書き方はだめです
どちらかをシングルクォーテーションに差し替えてください
document.write('・・・"xxx"・・・');
    • good
    • 0
この回答へのお礼

yambejp様
ご回答ありがとうございました。
無事動作させることが出来ました。

お礼日時:2009/01/16 17:23

XHTML的に言えば、



document.write(\"<table width=\\\"100%\\\" border=\\\"0\\\" cellspacing=\\\"1\\\" cellpadding=\\\"5\\\" style=\\\"font-size:12px;\\\">\")

ですね。

数値などはダブルクォートで囲まなくても動くことは動きますが、文法的には、こっちの方が正解です。
    • good
    • 0
この回答へのお礼

masa6272様
ご回答ありがとうございます。
HTMLをかじった程度の知識しか持ち合わせておりませんが
HTMLの初歩を思い出しました。
参考になりました。ありがとうございました。

お礼日時:2009/01/17 00:50

document.write(\"<table width=\\\"100%\\\" border=0 cellspacing=1 cellpadding=5 style=\\\"font-size:12px;\\\">\")



のように書いてもいいでしょう。
PHPで最初の\"が"に\\\"が\"になります。

結果として
document.write("<table width=\"100%\" border=0 cellspacing=1 cellpadding=5 style=\"font-size:12px;\">")

になります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!