0

私はこれまで、そして今後も多くのフォーラムの投稿を調べ続けますが、この単純な質問に対する解決策は見つかりませんでした。

サーバーからデータを取得し、このデータを .php ファイルで操作して、4 つの変数を作成します。私の変数は (簡単にするために) $v1、$v2、$v3、$v4 です。これらの 4 つの変数を使用したい .js ファイルもあります。具体的には、これらの変数を Google マップ マーカーで使用したいと思います (ただし、わからない場合は答える必要はありません)。これらの変数を取得して、その値を Google マップ マーカー (.js ファイル) で使用できますか?

4

2 に答える 2

1

外部スクリプトがロードされる前にスクリプトタグでグローバル変数を宣言すると、外部スクリプトで使用できるようになります。

<html>
<head>
    <script type="text/javascript">
    var v1 = <?=$v1?>,
        v2 = <?=$v2?>,
        v3 = <?=$v3?>,
        v4 = <?=$v4?>;
    </script>
    <script type="text/javascript" src="js/someExternalScript.js"></script>
</head>
<body>
    Some body
</body>
</html>

必要に応じて、scriptタグを使用してjavascript外部ファイルのように含める別のページで変数を定義することもできます。スクリプトがソースに表示される順序で、後のスクリプトは前のスクリプトのグローバル変数(ここではグローバルは関数/クロージャスコープ内で定義されていないことを意味します)にアクセスできます。たとえば、ほとんどの人は外部スクリプトとしてjqueryを含めており、jqueryの後に含まれるすべてのスクリプトがそれにアクセスできます。

于 2013-01-14T23:53:27.707 に答える
0

あなたは2つのことをすることができます:

  1. 問題に適切にアプローチします。
  2. それを半分お尻。

最初に2番目の手順を説明します。これは、これら2つのテクノロジーがどのように関連しているかを理解するのに役立つはずだからです。

半分お尻それ

これは、作成しているスクリプトがAjaxベースではなく、PHPを使用した標準のgenerate-page-with-PHPであり、.jsが含まれていることを前提としています。

  1. Javascriptコンテンツを生成するphpファイルを作成します。

    // /js/vars.php
    $v1 = $v2 = $v3 = $v4 = time();
    
    header("Content-type: text/javascript");
    
    echo "window.Variables = {
        v1: $v1,
        v2: $v2,
        v3: $v3,
        v4: $v4
    }";
    

    (変数が文字列の場合は、引用符を追加する必要があることに注意してください)

  2. <head>で変数を使用するファイルの前にそのファイルを要求します。

    <script type="text/javascript src="/js/vars.php">
    
  3. .jsファイルで使用してください。

    var smth = Variables.v1 + Variables.v2;
    

これがノーノーである理由はたくさんありますが、その中には次のようなものがあります。

  • PHPファイルによって生成されたJavaScriptは、簡単に保守することはできません。
  • グローバルJS名前空間はやや厄介です。
  • Ajaxではうまく機能しません。

ちゃんとした

  1. JSONデータを生成するphpファイルを作成します。

    // /js/vars.php
    $v1 = $v2 = $v3 = $v4 = time();
    
    $jsonArr = array(
    'v1'=> $v1,
    'v2'=> $v2,
    'v3'=> $v3,
    'v4'=> $v4
    );
    header("Content-type: application/json");            
    echo json_encode($jsonArr);
    
  2. Ajaxを使用してデータをプルするJavaScriptコードを記述します。例えば。jQueryの使用:

    $.getJSON('js/vars.php', function(data) {
        alert(data.v1+data.v2);
    });
    
于 2013-01-15T00:14:20.843 に答える