状況: ドキュメント全体を再読み込みせずにメニューリンクをクリックしたときにページのタイトルとコンテンツを変更しようとしています。 これまでのところ、内容を変えることは魅力のように機能します。しかし、私はタイトルを変更することにいくつかの問題があります。ここでPHP内でJavaScriptを使用してページタイトルを変更する場合
は、私はそれを説明するときに、私は理解していたコードです:
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
ループはの配列をrq
の対応にスキップします。
ここで問題は、if (isset($newTitle))
内のスクリプトが再生されないということです。それ以外は何もしません(私はecho $newTitle;
を試しましたが、質問の内容に応じてページの内容が変わりますが、スクリプトは再生されません)。 PHPの内部ではJavaScriptを再生する方法をStackOverflowのとウェブを検索し、これは他の人のために働くように見えたものですが、私の場合にはそれがない。
任意のポインタ?:)私を読み取るための
感謝、
Chris(IT学生)
JSはページの読み込み時にレンダリングされるので、それをトリガーするようなスクリプトにJSを追加するとは思いません。匿名関数呼び出しまたはsettimeout関数で呼び出すことを試みてください –
@NishanthMathaしたがって、index.phpページのタイトルを変更するのではなく、メニューリンクをクリックしたときに呼び出される関数でそれを変更しますか?私はそれを試してみます –
間違いなくそれが実行されていないjavascriptのですか? '$ newTitle'が' 'Home ''ならば、挿入されるjavascriptは 'document.title = Home;' 'document.title'を設定するのではなく' Home'変数を探すでしょう文字列 '' Home "' –