我認爲這只是我在腳本體驗中缺乏寫作。 我試圖使用AJAX和谷歌地圖標記搶lat
和long
從標記進行到數據庫的請求,以便我可以填充地圖下面的表格。
我似乎能夠抓住lat
和long
,但我似乎無法將它傳遞給發出新請求的頁面。我已經測試過,以確保我得到了帶有警報的lat/long
,並且我得到了它。使用AJAX在腳本中傳遞值
但我似乎無法找到正確的語法將它傳遞給請求。
另外我寫在經典ASP。我將不勝感激幫助我使用這種語言的回覆,而不是我轉移到ASP.NET的建議我正朝着這個方向前進,但現在這就是我如何去做的。
<script type="text/javascript">
var j =0;
var sites = <%=overallpass%>;
function setMarkers(map, markers) {
for (var i = 0; i < markers.length; i++) {
var sites = markers[i];
var siteLatLng = new google.maps.LatLng(sites[1], sites[2]);
var theicon = sites[5];
var marker = new google.maps.Marker({
position: siteLatLng,
map: map,
title: sites[0],
zIndex: sites[3],
html: sites[4],
icon: sites[5]
});
var contentString = "Some content";
var infowindow = new google.maps.InfoWindow({
content: contentString
});
google.maps.event.addListener(marker, "click", function(event) {
loadXMLDoc(event.latLng)
});
}
}
</script>
<script>
function loadXMLDoc(location)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","demo_get2.asp?fname=Henry&lname=location.lat()",true);
xmlhttp.send();
}
</script>
的xmlhtpp.open
聲明就是我想要的lat/long
傳遞到demo_get2.asp
文件。在這個例子中,我有一段文字正確地傳遞給fname
。但我試圖通過lat
到lname
。
我也嘗試過這樣的事情 「demo_get2.asp?FNAME =亨利& L-NAME =」 + location.lat()
但這也不管用。
作爲一個側面的問題。我一直在使用W3school作爲一些代碼示例的源代碼。 (因此在這裏變量名稱的選擇很差,我會把它清理乾淨),但是在他們的一些例子中列出了一些文件,例如demo_get2.asp
。我無法找到這些文件的位置,以查看代碼的準確性。在上面的例子中,我創建了自己的文件,它只是讀取這兩個值並將它們顯示在頁面上。有用。但是對於其他示例,我很感興趣的是看到他們的示例中包含的實際代碼。我似乎無法找到他們分享這些東西的地方。在TryIt的例子中,我也沒有找到它。
我將代碼行更改爲 xmlhttp.open(「GET」,「demo_get2.asp?fname = Henry&lname =」+ location.lat,true); 和輸出結果是亨利函數(){返回此[A]} 所以我不認爲這是完全正確但 – user1968084
我會放一個編輯,我的答案... –
在我把原來的例子結果有myDiv元素的輸出看起來像 亨利location.lat() 我試着你的例子,並顯示你的輸出。元素myDiv出了 亨利功能(){返回這[a]} 我有點期待像 亨利43.2134534 – user1968084