1

メインページとして php ファイルがあり、php で描画された外部 js ファイルに php 変数を渡したいと考えています。正常に動作するが、メイン ページの php に「依存」していない php 化された外部 js ファイルがいくつかあります。一部はメイン ページの JavaScript に依存していますが、私はそれから離れたいと考えています。私の意図は、JavaScript の量を制限し、ダイナミクスを増やすことでメイン ページをきれいに保ち、より良いサイト管理を可能にすることです。

外部ファイルと呼び出しページとの自然な関係を理解し​​ていれば、わからないかもしれません。たとえば、以下のコードは私の現在のコードの一部であり、php ファイルである外部 js スクリプトがメイン ページから "functions.php" と $sel_entity を参照していると想定しています。ただし、そのようには機能しないようです。おそらく functions.php を外部ファイルに含める必要があると思いますが、$sel_entity には手がかりがありません。メインページの js 変数に変数をエコーできることは承知していますが、計画にはもっと動的なものが必要です。ここで何か助けていただければ幸いです。ありがとうございました!

たとえば、メイン ページは次のようなものです。

<?php require_once("includes/connection.php"); ?>
<?php require_once("includes/functions.php"); ?>
<?php  $sel_entity = $_GET['entity']; ?>
...//bunches of code 
<script type="text/javascript" src="javascripts/lines.php"></script>

次に、js ファイルの lines.php は次のようになります。

<?php
 Header("content-type: application/x-javascript");
  $job_set = get_jobs($_GET['entity']);                     
  while ($job = mysql_fetch_array($job_set)) {
    echo "
        var jobLine";
echo $job["Project_ID"];
echo " = [new google.maps.LatLng(lati, longi),
";
$jobIdCoords = get_jobCoord_by_id($job["Project_ID"]);
echo " new google.maps.LatLng(";
echo $jobIdCoords['lat'] . ", ";
echo $jobIdCoords['long'] . ")]; ";
                    }
  ...// bunches more code
?>  
4

1 に答える 1

2

最善の方法は $_SESSION を使用することですが、必ず「js」ファイルでセッションを開始してください。

<?php
session_start();
$_SESSION["foo"] = "bar";
?>
<script type="text/javascript" src="javascripts/lines.php"></script>

そしてJSファイル:

<?php
Header("content-type: application/x-javascript");
session_start();
echo 'var foo = "'.$_SESSION["foo"].'";';
?>
alert(foo);

ただし、次のように $_GET も使用できるはずです。

<script type="text/javascript" src="javascripts/lines.php?foo=bar"></script>

そして「JS」ファイル:

<?php
Header("content-type: application/x-javascript");
echo 'var foo = "'.$_GET["foo"].'";';
?>
alert(foo);
于 2012-06-10T23:52:12.267 に答える