Javascript 在PHP';如果';

Javascript 在PHP';如果';,javascript,php,title,Javascript,Php,Title,情况如下: 我试图在不重新加载整个文档的情况下,在单击菜单链接时更改页面的标题和内容。 到目前为止,改变内容就像一种魅力。但是我对更改标题有一些问题 以下是代码,因此我在解释时可以理解: if (isset($_GET['rq'])) { $rq = $_GET['rq']; foreach($lesMenus as $menuName=>$menuContent){ foreach($menuContent as $name=>$link){

情况如下: 我试图在不重新加载整个文档的情况下,在单击菜单链接时更改页面的标题和内容。 到目前为止,改变内容就像一种魅力。但是我对更改标题有一些问题

以下是代码,因此我在解释时可以理解:

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');
}
if(isset($\u GET['rq'])){
$rq=$_GET['rq'];
foreach($menuName=>$menuContent){
foreach($menuContent作为$name=>$link){
$linkW=substr($link,0,strpos($link,'.');
如果($linkW==$rq){
$newTitle=$name;
打破
}
}
}
如果(isset($newTitle)){
$title=$newTitle;
回声(“
document.title=“.$newTitle.”;
");
}
$mainContent='您要求:'.$rq;
主要内容;
}
否则{
包括('INC/layout.html.INC.php');
}
发生的情况是:单击菜单链接时,会调用一个函数,在完成一些工作后:
xmlhttp.open(“GET”,“index.php?rq=“+rq,true”)

这里的内容基本上是
index.php
页面的基础

foreach
循环在
$lesmones
数组中浏览
rq
的对应项

现在的问题是
if(isset($newTitle))
中的脚本无法播放。其他的一切都会发生(我尝试了echo$newTitle;
,它做到了,页面的内容会根据请求而改变,但脚本不会播放。即使脚本中有一个简单的Hello world也不会发生

我在stackOverflow和web上搜索了一种在PHP中使用javaScript的方法,这似乎对其他人有用,但在我的例子中却没有

有什么建议吗?:)

谢谢你读我的书


Chris(IT学生)

您可以在PHP中执行条件检查,并将标题存储在
$newTitle
中,还可以创建另一个布尔值
$needtochangettitle

而不是使用PHP来回显脚本标记。只需将脚本标记作为HTML放入,然后执行另一个条件检查

var needToChangeTitle = "<?php echo $needToChangeTitle ?>";
var newTitle = "<?php echo $newTitle ?>";
if (needToChangeTitle === "true") {
  document.title = newTitle;
}
var needToChangeTitle=“”;
var newTitle=“”;
if(needToChangeTitle==“true”){
document.title=newTitle;
}

您可以在PHP中执行条件检查,并将标题存储在
$newTitle
中,还可以创建另一个布尔值
$needToChangeTitle

而不是使用PHP来回显脚本标记。只需将脚本标记作为HTML放入,然后执行另一个条件检查

var needToChangeTitle = "<?php echo $needToChangeTitle ?>";
var newTitle = "<?php echo $newTitle ?>";
if (needToChangeTitle === "true") {
  document.title = newTitle;
}
var needToChangeTitle=“”;
var newTitle=“”;
if(needToChangeTitle==“true”){
document.title=newTitle;
}

更改页面标题有不同的方法。 只需将数据传递给JavaCScript变量即可对其进行更改,如下所示:

<script>
var jTitle=<?= $phpContainnewTitle; ?>
</script>
但它会导致SEO排名下降。标题是搜索引擎优化中的重要标签。
注意这一点。

更改页面标题有不同的方法。 只需将数据传递给JavaCScript变量即可对其进行更改,如下所示:

<script>
var jTitle=<?= $phpContainnewTitle; ?>
</script>
但它会导致SEO排名下降。标题是搜索引擎优化中的重要标签。
请注意这一点。

简单地将脚本添加到DOM不会导致它执行。因此,您需要以某种方式调用它,可能是通过将它包装在函数中并按名称调用它

但是,如果要这样做,最好只回显newTitle,并在执行http请求后进行更新:

JS:


简单地将脚本添加到DOM不会导致它执行。因此,您需要以某种方式调用它,可能是通过将它包装在函数中并按名称调用它

但是,如果要这样做,最好只回显newTitle,并在执行http请求后进行更新:

JS:


JS是在页面加载时呈现的…所以我不认为像那样将其添加到脚本中会触发它。尝试在匿名函数调用或settimeout中调用它function@NishanthMatha因此,与其在index.php页面中更改标题,不如在单击菜单链接时调用的函数中更改标题?我会试试的肯定是javascript没有运行?据我所知,如果
$newTitle
“Home”
,则插入的javascript将是
document.title=Home
将查找
Home
变量,而不是将
document.title
设置为字符串
“Home”
@ThorbjørnKappelHansen。我尝试了
document.title=“test”
以及\为了在脚本中保留
,我尝试了
警报('test')
,我试图更改背景颜色,我尝试了一系列简单的javascript操作,只是想看看它们是否会运行,但没有运气。@BatteMan啊,好吧,那么我不确定JS是否在页面加载时呈现……所以我不认为这样添加到脚本中会触发它。尝试在匿名函数调用或settimeout中调用它function@NishanthMatha因此,与其在index.php页面中更改标题,不如在单击菜单链接时调用的函数中更改标题?我会试试看,肯定是javascript没有运行?据我所知,如果
$newTitle
”主页“
,插入的javascript将是
document.title=Home
将查找
Home
变量,而不是将
document.title
设置为字符串
“Home”
@ThorbjørnKappelHansen。我尝试了
document.title=“test”
以及\为了在脚本中保留
,我尝试了
警报('test')
,我试图改变背景颜色,我尝试了一系列简单的javascript操作,只是想看看它们是否会运行,但没有运气。@BatteMan啊,好吧,那么我不确定,谢谢,这有点帮助。我改变了思维方式,使用了我单击的链接的
.text
属性,并在功能归于菜单链接
if (isset($newTitle)){
    echo($newTitle);
}