2012-04-29 14 views
0

PHPリクエストからjavascript配列beaches3をhttpRequestで動的に埋めようとしています。httpRequestを使ってJavascript配列にPHP文字列を渡します。

var jqxhr = $.get("http://127.0.0.1/websites/map_with_me.php?region="+region+"&suburb="+suburb+"&lat="+lat+"&lon="+lng, function() { 
document.getElementById("thediv").innerHTML = (jqxhr.responseText); 
var beaches3 = (jqxhr.responseText); 
}) 

map_with_me.phpの出力が

[ 
    ['Bondi Beach', -33.890542, 151.274856, 4], 
    ['Coogee Beach', -33.423036, 151.259052, 5], 
    ['Cronulla Beach', -34.028249, 121.157507, 3], 
    ['Manly Beach', -33.80010128657071, 151.28747820854187, 2], 
    ['Maroubra Beach', -33.450198, 151.259302, 1] 
]; 

ですだから私はmap_with_me.phpファイルによって生成される動的な位置とbeaches3のVARを埋めたいです。

$ .get要求全体を、静的な動作する静的なビーチ変数で置き換えた場合。

phpファイルで生成された動的javascriptをjavascript配列に渡すにはどうすればよいですか?

map_with_me.php

<?php 
echo "var beaches3 = [ 
    ['Bondi Beach', -33.890542, 151.274856, 4], 
    ['Coogee Beach', -33.423036, 151.259052, 5], 
    ['Cronulla Beach', -34.028249, 121.157507, 3], 
    ['Manly Beach', -33.80010128657071, 151.28747820854187, 2], 
    ['Maroubra Beach', -33.450198, 151.259302, 1] 
];" 
?> 

これは動作します:

var jqxhr = $.get("http://127.0.0.1/websites/map_with_me.php?region="+region+"&suburb="+suburb+"&lat="+lat+"&lon="+lng, function() { 
document.getElementById("thediv").innerHTML = (jqxhr.responseText); 
var beaches3 = [ 
     ['Bondi Beach', -33.890542, 151.274856, 4], 
     ['Coogee Beach', -33.423036, 151.259052, 5], 
     ['Cronulla Beach', -34.028249, 121.157507, 3], 
     ['Manly Beach', -33.80010128657071, 151.28747820854187, 2], 
     ['Maroubra Beach', -33.450198, 151.259302, 1] 
    ]; 
}) 

このdoesntの:

var jqxhr = $.get("http://127.0.0.1/websites/map_with_me.php?region="+region+"&suburb="+suburb+"&lat="+lat+"&lon="+lng, function() { 
document.getElementById("thediv").innerHTML = (jqxhr.responseText); 
var beaches3 = (jqxhr.responseText); 
}) 

答えて

0

あなたはそれが配列ではなく、JSONまたは何か他のものだと確信している場合は、ちょうどやって:

$.get("/websites/map_with_me.php?region="+region+"&suburb="+suburb+"&lat="+lat+"&lon="+lng, function(data) { 
    $("#thediv").html(data); 
    var beaches3 = data; 
}); 

で十分です。

+0

おかげで、私は、「PHPの文字列を返しています[ [ 'ボンダイビーチ'、-33.890542、151.274856、4]、 [ 'クージービーチ'、-33.423036、151.259052を、5]、 [ 'クロヌラビーチ'、-34.028249、121.157507、3]、 [ 'マンリービーチ'、-33.80010128657071、151.28747820854187、2]、 [ 'マルブラビーチ'、-33.450198、151.259302、1] ] ; " – preschool

+0

はい、それは配列内の配列であり、beaches3変数を同じ構造体と値を持つ配列にするために、上記のコードはうまくいくはずです。 – adeneo

+0

ありがとう@adeneo、私はあなたが意味を参照してください:phpファイルは、最初の配列内の配列です。これをどうすれば解決できますか? – preschool

0

あなたが試してみました:

var beaches3 = JSON.parse(jqxhr.responseText); 
関連する問題