-2

こんにちは、PHP コードで非常に奇妙なエラーが発生しています。xml ファイルから読み取って、Web ページのコンテンツを動的に変更しようとしています。いくつかのデータを読み取り、そのデータを $course_title という名前の PHP 変数に割り当ててから、DOM 要素の「innerHTML」を更新する Javascript を呼び出そうとします。注: 「echo $course_title;」という行で 正しいデータを画面に出力します。

$fn = dirname(__FILE__)."/course.xml";  
$xml = simplexml_load_file($fn);
$course_bookimagelocation = "";
foreach ($xml->children() as $child)
{
    if($child[0]->getName()=="book")
        $course_bookimagelocation = $child;
    if($child[0]->getName()=="title")
        $course_title = $child;
}   
//Problems start here...
echo $course_title;
echo '<script type="text/javascript">document.getElementById("heading").innerHTML = "';
echo $course_title;
echo '";</script>';

非常にユニークな点は、最初の echo ステートメントで正しい情報が出力されますが、次の 3 行で .innerHTML が同じ値に変更されないことです。誰かそれが何であるか知っていますか?また奇妙なのは、2 番目の「echo '$course_title';」を置き換えると、「Hello world!」のようなもので 次に「ハローワールド!」「見出し」id オブジェクトの innerHTML として表示されます。

編集

course.xml と呼ばれる XML ファイルでは、title 要素はIC 210 Fall 2010であり、$course_title の内容はIC 210 Fall 2010であるため、php ファイルの解析は正しく表示され、次のような特殊文字の縫い目はありません。"または' _

また、すべてを同じ行に配置しようとしましたが、運が悪かった... (xmlファイルで、 <title> 要素のテキストが同じ行にあることを確認しました...

4

2 に答える 2

1

JavaScriptでは機能しない.innerHTML = "Some text"ため、同じ行にあることを確認してください。.innerHTML = "\nSome Text\n"

このようなものが必要な場合:

.innerHTML = "
Some String
";

試す:

.innerHTML = ""+
"Some String" +
"";
于 2012-05-23T14:23:31.017 に答える
0

「DOM 要素の「innerHTML」を更新する Javascript を呼び出します。」そのために AJAX を使用しますよね?

そのようにすることもできますが、隠しDIVにテキストをプリロードし、関数を使用してDIVSのコンテンツを変更したり、DIVの可視性を切り替えたりする方が簡単だと思います(お好みで)。そうすれば、コメントで言及されている多くのエスケープの問題を回避できます。

AJAXを使用しない場合、それが私が行う方法です

于 2012-05-23T13:50:33.023 に答える