我正在研究谷歌地图,我正在尝试按颜色对我的标记进行分类。类别表有[id,categoryname,color],标记表有[id,....,category(类别表类别的id)]。
在 PHP 中:
$result = mysql_query("SELECT * FROM `markers`");
//Multiple rows are returned
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
if ( $x == 0 )
{
$separator = "";
}
else
{
$separator = "****";
}
//Saving to the String, each variable is separated by three &'s
$encodedString = $encodedString.$separator.
"<b><div class='name'></b>".$row[3].
"</div><div class='opli'><b>Lon:</b> ".$row[2].
"</div><div class='opli'><b>Lat:</b>".$row[1].
"</div><div class='opli'><b>Address:</b>".$row[4].
"</div><div class='opli'><b>Category:</b>".$row[5].
"</div></div>&&&".$row[1]."&&&".$row[2]."&&&".$row[6]."&&&".$row[5];
$x = $x + 1;
$colorgetterq= mysql_query("SELECT color FROM `map`.`category` WHERE id= ".$row[5]."");
$colorgettert = mysql_fetch_row($colorgetterq);
$colorgetter= $colorgettert[0];
}
在Java中: colorget = document.getElementById("colorget").value;
stringArray = encodedString.split("****");
var x;
for (x = 0; x < stringArray.length; x = x + 1)
{
var addressDetails = [];
var scale1 = [];
var marker;
//Separate each field
addressDetails = stringArray[x].split("&&&");
//Load the lat, long data
var lat = new google.maps.LatLng(addressDetails[1], addressDetails[2]);
//Create a new marker and info window
marker = new google.maps.Marker({
map: map,
position: lat,
icon: {
strokeWeight: 0.01,
fillColor: colorget,
fillOpacity: 0.85,
path: google.maps.SymbolPath.CIRCLE,
scale: 5 + addressDetails[3] * (35-5)/(hiscale-loscale),
},
content: addressDetails[0]
});
我不知道我所做的事情是错误的,但在 fillColor 中,由于某种原因,颜色仍然是黑色,并且不会加载不同的类别颜色。
最佳答案
这里有很多问题,但让我们让它为您工作。
将此行 $colorgetter= $colorgettert[0];
替换为 $encodedString= $encodedString."&&&"。 $colorgettert[0];
这一行 fillColor: colorget,
和 fillColor: addressDetails[6],
关于php - 将值从 php 传递到 mysql,然后返回到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18317728/