0

私はこの小さな機能を持っています

function makewindows(){
child1 = window.open ("about:blank");
child1.document.write("<?php echo htmlspecialchars(json_encode($row2['ARTICLE_DESC']), ENT_QUOTES); ?>");
child1.document.close(); 
}

何を試しても、phpコードの結果ではなく、phpコードをhtmlソースとして出力するだけです。これは以前は正常に機能していましたが、何を変更してこの動作になったのかわかりません。

これですべてのコードを貼り付けました。updateByQuery を呼び出すリンクによってエラーが生成され、makewindows が正しく解析されない..と思います。ただし、updateByQuery の何が問題なのかはわかりません。

function updateByQuery(layer, query) {
   url = "get_records.php?cmd=GetRecordSet&query="+query+"&sid="+Math.random();
   update(layer, url);
}
4

5 に答える 5

3

最近、このファイルをPHPで解析されたファイル(つまり、.phtml / .php)から.jsファイルに移動しましたか?実行が予想されるPHPは、クライアントに配信する前にPHPパーサーで解析する必要があることに注意してください。元々.phpファイルにあった場合は、解析/実行され、正常に機能していました。

ただし、デフォルトでは、.jsファイルはPHPによって解析されません。おそらく、ある時点ではそうでしたが、サーバー管理者が最近何かをアップグレードし、この動作を失いましたか?ローカル設定ファイル(Apacheでは.htaccess)を使用して再度有効にできる場合があります。

于 2008-12-15T12:26:15.673 に答える
1

このコードは、ブラウザに送信される前にPHPによって解析されるファイルに含まれている必要があります。「.php」拡張子が付いていることを確認してください(または、Apache /(またはその他)がPHPを介して使用している拡張子を付けるように構成されていることを確認してください)。また、PHPが正しくインストールされ、機能していることを確認してください。

于 2008-12-15T12:24:33.430 に答える
0

次のようにWebサーバーからページを実行していることを確認してください。次のhttp://localhost/yourpage.phpようにファイル自体から直接実行していないことを確認してください。file://yourpage.php

于 2008-12-15T12:28:50.440 に答える
0

他の人がすでに言っているように、PHPによって解析されるファイルにまだそれがあると思います。次に、php-parserを混乱させ、php-tagを認識しないのは、おそらくこのコードスニペットの上にあるものです。

それをテストするには、この関数の前に何か他のものを出力してみてください。おそらくコメントか何かです。

また、client1の前に「var」を使用します。そうしないと、client1がグローバルスコープになります。

update 1 phpコードの一部を挿入しようとして壊れたため、問題はサーバーがファイルを正しく解析しないことです。

サーバーが実際に.jsファイルを解析するかどうかをテストするには(私が信じているデフォルト設定ではありません)、新しいファイルtest.jsを作成します。

<?php echo "This is a test"; ?>

ブラウザでtest.jsファイルを開き、ページのソースを確認します。phpタグがある場合、サーバーは.jsファイルを解析しません。

update 2 phpが.jsファイルで機能する場合は、次のように関数を書き直してみてください(現在、phpサーバーにアクセスできないため、テストしていません)。

<?php    
echo "function makewindows(){var child1 = window.open (\"about:blank\"); " .
"child1.document.write(\"" . htmlspecialchars(json_encode($row2['ARTICLE_DESC']), ENT_QUOTES) . "\");" . "child1.document.close(); }";    
?>
于 2008-12-15T12:34:24.347 に答える
0

これが役立つかどうかはわかりませんが、ベスト プラクティスでは、JavaScript を使用して新しいウィンドウに書き込むときはいつでも、ドキュメントを開いて閉じる必要があります。これを試すことができますか?

function makewindows(){
  var child1 = window.open ("about:blank");
  child1.document.open();
  child1.document.write("<?php echo htmlspecialchars(json_encode($row2['ARTICLE_DESC']), ENT_QUOTES); ?>");
  child1.document.close(); 
}
于 2008-12-15T13:35:59.900 に答える