美好的一天,我的PHP代码有一个很奇怪的错误。我试图通过从xml文件读取动态更改我的网页的内容。我读了一些数据并将数据分配给名为$ course_title的PHP变量,然后尝试调用一些将更新DOM元素的“innerHTML”的Javascript。注意:在行“echo $ course_title;”打印出正确的数据在屏幕上。与PHP变量PHP的javascript调用
$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没有得到改变,以相同的值。有人知道那是什么吗?还有一点奇怪的是,如果我用'Hello world!'替代第二个“echo'$ course_title';”。随后的 “Hello World!” 出现在 “标题” ID对象的innerHTML。
编辑
在叫course.xml XML文件中,标题元素是IC 210 2010年秋季和$ COURSE_TITLE的内容是IC 210 2010年秋季所以PHP文件的解析似乎是正确的,有没有接缝的任何特殊字符,如一个“或”
我也三编辑把所有的东西放在同一行,而不是运气...(我甚至确认在xml文件中,<标题>元素在同一行上有文字...
能否请您告诉我们从回声语句之前的HTML?从这些回声中得到的渲染输出也会有所帮助。 –
只是一个简单的问题,你知道当$ course_title包含课程名称'class'foo>'或任何其他在JavaScript/HTML中有特殊含义的字符时会发生什么?因为答案可能不在于它仍然存在一个重要的事情要实现 – ikanobori
这可能是''course_title'中的某些内容导致引号提前结束检查源代码并查看输出内容您可能需要向输出添加斜杠,具体取决于您的服务器config. –