我試圖在Google的Geochart上繪製一些城市。這個功能完美地工作,並將繪製城市。php在javascript函數中生成的數組
function drawMarkersMap() {
var newInfo = google.visualization.arrayToDataTable([
['City'],
['San Diego'],
['Los Angeles'],
['San Jose']
]);
雖然這很好,所有,我從我的數據庫通過PHP生成我的城市。所以,讓我們只是說,我們有這個php陣列
<?php $city = array("San Diego", "Los Angeles", "San Jose"); ?>
現在來到我正在努力的部分。我似乎無法得到一個循環正常工作,以便我可以分別輸出每個城市。
當我這樣做只是第一個城市的陣列(聖地亞哥)將顯示,我明白爲什麼......我只是表明這種方法至少會打印「東西」
function drawMarkersMap() {
var newInfo = google.visualization.arrayToDataTable([
['City'],
['<?php foreach($city as $location){ echo json_encode($location); } ?>']
]);
//options here
}
所以,我試圖通過循環和使用JavaScript打印陣列中的每個項目,但我似乎不具有邏輯正確
function drawMarkersMap() {
var newInfo = google.visualization.arrayToDataTable([
['City'],
for(i=0;i<json_encode($city).count;i++){
//some kind of print statement mixing php and javascript. I need help here please!
}
]);
這裏就是整個頁面
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Google Visualization API Sample</title>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<?
$city = array("San Jose","Los Angeles","San Diego");
foreach($city as $key=>$value) {
echo "$value";
}
?>
<script type="text/javascript">
google.load('visualization', '1.1', {packages: ['geochart']});
function drawMarkersMap() {
var newInfo = google.visualization.arrayToDataTable([
['City'],
['<?php echo json_encode($city); ?>']
]);
var chart = new google.visualization.GeoChart(document.getElementById('chart_div'));
chart.draw(newInfo, {width: 556, height: 347, displayMode: 'markers', region: 'US-CA', resolution: 'provinces'});
}
google.setOnLoadCallback(drawMarkersMap);
</script>
</head>
<body style="font-family: Arial;border: 0 none;">
<div id="chart_div"></div>
</body>
</html>
你需要發佈'json_encode()'實際輸出的內容,而不僅僅是函數。你的JSON可能是畸形的,或者不是數組,而是一個對象,谷歌的功能可能會嘔吐。 – Bojangles
我不太確定我明白你的意思。你可以給我一個例子或修改我的? – user1104854
目前,你所提供的只是'<?php echo json_encode($ city); ?>',這是無用的,因爲不可能知道'json_encode()'輸出的字符串是否適合你插入的JS。請不要發佈PHP,而是將它輸出的JSON字符串發佈到瀏覽器。 – Bojangles