0

さて、私の<head>セクションには次のようなものがあります。

<script>
    var userDefaultInfo = '<?=$userInfo;?>';
    var jGets = new Array ();
    <?
    if(isset($_GET)) {
        foreach($_GET as $key => $val)
            echo "jGets[\"$key\"]=\"$val\";\n";
    }
    ?>
</script>

これで、外部の.JSファイルの$(document).ready()セクションでuserDefaultInfoに正常にアクセスできますが、jGetsに直接アクセスしようとしていますが、そこから直接アクセスすることはできません。

$(document).ready();の外部の外部.JSファイル内。私は次の機能を持っています:

var sendGET = function () {
    var data = $(this).val();
    var elementName = $(this).attr("name");
    var url = "zephi.php?p=home/support/admin_support.php&"+elementName+"="+data;
    jQuery.each(jGets, function(i, val) {
           alert(val);
        });
    alert(url);
    window.location = url;
}

ユーザーがボックスを変更すると、この関数が起動し、データを使用してウィンドウの場所を変更します。ただし、変数にデータを追加したいのですがjGets、そこではまったく参照できないようです。

どうしてこれなの?

4

2 に答える 2

2

あなたは「間違い」です-をArrayとして使用しObjectます。

var jGets = {};
于 2012-10-04T11:11:56.357 に答える
0

おそらく、次のいずれかを実行すると機能する可能性があります。

echo 'var jGets = '.(isset($_GET) ? preg_replace('/^"|"$/','',json_encode($_GET)) : '{}').';'
//or
echo 'var jGets = JSON.parse('.isset($_GET) ? json_encode($_GET); : '"{}"'.');'

jGetsこれにより、オブジェクトリテラルが生成され、ループをいじることなく、必要なものがすべて割り当てられます。JSONはを表すのでJavaScript Object Notation、それに応じて変数を設定するためにそれを使用するのは論理的/自然なことのようです。詳細はjson_encode こちらJSONPHPの詳細はこちらをご覧ください

于 2012-10-04T11:21:07.223 に答える