-2

美好的一天,我的 PHP 代码出现了一个非常奇怪的错误。我正在尝试通过读取 xml 文件来动态更改网页的内容。我读入一些数据并将数据分配给一个名为 $course_title 的 PHP 变量,然后尝试调用一些 Javascript 来更新 DOM 元素的“innerHTML”。注意:在“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 语句打印了正确的信息,但接下来的三行,.innerHTML 没有更改为相同的值。有谁知道那是什么?同样奇怪的是,如果我替换第二个“echo '$course_title';” 像“你好世界!” 然后是“你好世界!” 显示为“标题”id 对象的 innerHTML。

编辑

在名为 course.xml 的 XML 文件中,title 元素是IC 210 Fall 2010,$course_title 的内容是IC 210 Fall 2010,因此 php 文件的解析似乎是正确的,并且没有任何特殊字符,例如一个"'

我还尝试将所有内容放在同一行,而不是运气......(我什至在 xml 文件中确保 <title> 元素的文本在同一行......

4

2 回答 2

1

确保.innerHTML = "Some text"它们在同一行,因为.innerHTML = "\nSome Text\n"在 javascript 中不起作用。

如果你想要这样的东西:

.innerHTML = "
Some String
";

尝试:

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

“调用一些 Javascript 来更新 DOM 元素的“innerHTML”。” 为此,我们使用 AJAX,不是吗?

好吧,你可以这样做,但我认为将文本预加载到一些隐藏的 DIV 中并使用你的函数来更改 DIVS 的内容甚至切换 DIV 的可见性(如你所愿)会更简单。这样,您将避免评论中提到的许多转义问题。

如果不使用 AJAX,我会这样做

于 2012-05-23T13:50:33.023 回答