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);
}