情况是这样的: 我试图在单击菜单链接时更改页面的标题和内容,而无需重新加载整个文档。 到目前为止,改变内容就像一种魅力。但我在更改标题时遇到了一些问题。
这是代码,以便我解释时可以理解:
if (isset($_GET['rq'])) {
$rq = $_GET['rq'];
foreach($lesMenus as $menuName=>$menuContent){
foreach($menuContent as $name=>$link){
$linkW = substr($link, 0, strpos($link, '.'));
if($linkW == $rq){
$newTitle = $name;
break;
}
}
}
if (isset($newTitle)){
$title = $newTitle;
echo("<script type=\"text/javascript\">
document.title =".$newTitle.";
</script>");
}
$mainContent='You have asked for :'.$rq;
echo $mainContent;
}
else{
include('INC/layout.html.inc.php');
}
发生的情况是:单击菜单链接时,会调用一个函数,经过一些工作后会执行以下操作:xmlhttp.open("GET", "index.php?rq=" + rq , true);
你这里所拥有的基本上是 index.php
的基础。页。
双foreach
循环浏览$lesMenus
rq
的数组的对应者。
现在的问题是 if (isset($newTitle))
里面的脚本不玩。其他一切都会发生(我已经尝试过 echo $newTitle;
并且它做到了,页面的内容根据要求进行更改,但脚本不播放。即使是该脚本内的简单 Hello world 也不会发生。
我在 stackOverflow 和网络上搜索了一种在 PHP 中运行 javaScript 的方法,这似乎对其他人有用,但对我来说却行不通。
有什么指点吗? :)
感谢您阅读我的文章,
克里斯(信息技术学生)
最佳答案
仅仅将脚本添加到 DOM 不会导致它执行。因此,您需要以某种方式调用它,也许将其包装在函数中并按名称调用它。
但是,如果您打算这样做,您也可以仅回显 newTitle 并在执行 http 请求后更新它:
JS:
<!-- Assuming you have something like this -->
<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
var responseText = xhttp.responseText;
document.title = responseText;
}
};
xhttp.open("GET", "index.php?rq=" + rq , true);
xhttp.send();
</script>
PHP:
if (isset($newTitle)){
echo($newTitle);
}
关于javascript - 在 PHP 中使用 javascript 更改页面标题 'if',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37288729/