-3

こんにちは、私は、画像のパスをphpで指定しようとしているjavascriptファイルを持っています。

var arrowimages = {
  down:['downarrowclass', '<?php echo $_SERVER[REMOTE_HOST]; ?>/ultimate-legal-aid/administrator/down.gif', 23],
  right:['rightarrowclass', '<?php echo $_SERVER[REMOTE_HOST]; ?>/ultimate-legal-aid/administrator/right.gif']
}

しかし、うまくいきません。正しい方法でパスを定義するのを手伝ってください。

4

4 に答える 4

2

ファイルの拡張子が .js の場合、PHP エンジンによってコンパイルされることはありません (ブラウザーは php ファイルを要求しないため、apache は単にリソースを提供します)。js ファイルに php 拡張子を追加します。

于 2012-10-19T10:39:04.763 に答える
2

JavaScript ファイルを PHP パーサーに渡すようにサーバーを構成しない限り、これは機能しません。これは、Apache を構成することで実行できます。

AddHandler application/x-httpd-php5 .js

またはnginx:

location ~ \.js$ {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
}
于 2012-10-19T10:39:10.863 に答える
1

それが機能しないという事実は、PHP を JavaScript に埋め込む方法とは何の関係もありません。何が起こっているのかを説明する前に、クライアント側の言語とサーバー側の言語の違いを知っておいてもらいたいと思います。

ユーザーがページの URL を入力して Enter キーを押すと、そのページのリクエストが Web サーバーに送信されます。サーバーの構成方法により、この要求は serevr に PHP スクリプトを実行するように指示します。PHPはサーバーサイド言語です。つまり、ユーザーは PHP コードを見ることはありません。この PHP スクリプトが出力するものは、それが HTML、CSS、Javascript、またはその他の種類のファイルであるかどうかにかかわらず、ユーザーに送信されます。

出力に JavaScript が含まれている場合、これはダウンロード後にユーザーのブラウザーによって実行されます。これは、指定したコード スニペットで、PHP スクリプトが出力することを意味します。

var arrowimages={down:['downarrowclass', '12.12.12.12/ultimate-legal-aid/administrator/down.gif', 23], right:['rightarrowclass', '12.12.12.12/ultimate-legal-aid/administrator/right.gif']}.

これらの数値は、おそらく 12.12.12.12 ではなく、ドットで区切られた別の一連の数値です。これは IP アドレスです。具体的には、ユーザーの IP アドレスです。したがって、これが出力するパスはユーザーのコンピューター上のパスになり、ユーザーはおそらく Web サーバーを実行していないため、画像は表示されません。その行を次の行に置き換える必要があります。

var arrowimages={down:['downarrowclass', '<?php echo $_SERVER["SERVER_NAME"]; ?>/ultimate-legal-aid/administrator/down.gif', 23], right:['rightarrowclass', '<?php echo $_SERVER["SERVER_NAME"]; ?>/ultimate-legal-aid/administrator/right.gif']}
于 2012-10-19T10:47:48.350 に答える
0

あなたは引用符を忘れました

$_SERVER['REMOTE_HOST']
于 2012-10-19T10:35:02.917 に答える