PHP JavaScript 调用与 PHP 变量

PHP javascript call with PHP variable

本文关键字:PHP 变量 调用 JavaScript      更新时间:2023-09-26

美好的一天,我的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';"替换为"Hello world!",那么"Hello World!"就会显示为"heading"id对象的innerHTML。

编辑

在名为 course.xml 的 XML 文件中,title 元素是 IC 210 Fall 2010,

$course_title 的内容是 IC 210 Fall 2010,因此 php 文件的解析似乎是正确的,并且没有任何特殊字符,如 "'

我也尝试将所有东西都放在同一条线上,而不是运气......(我什至在 xml 文件中确保

元素的文本在同一行......

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

如果你想有这样的东西:

.innerHTML = "
Some String
";

尝试:

.innerHTML = ""+
"Some String" +
"";
"

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

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

如果不使用 AJAX,这就是我会这样做的方式