2011-03-31 3 views
0

Я хочу сделать карту google, которая позволяет людям щелкнуть по карте и сохранить точку в качестве начальной или конечной точки. После нажатия на кнопку, будет отображаться информация. Я изменил координату карты google в свою собственную координату. И я создал базу данных со зданиями в координате. То есть, база данных, как этот (х Y Building) (1, 2, башня 1) (1, 3, башня 2)передать переменную в javascript на sql-сервер, используя ajax

Я хочу передать координату для поиска в базе данных SQL и вернуться обратно в здание. И покажите название здания в текстовом поле. Однако, похоже, возвращение не увенчается успехом. Пожалуйста, помогите мне. Я искал в Интернете долгое время.

storelatlng.php

require_once("Connections/fees0_7548734_cumap.php"); 
$x = $_GET['x']; 
$y = $_GET['y']; 
$data = mysql_query("SELECT Bname FROM Coordinate WHERE X=2 AND Y=58") or die(mysql_error()); 
$info = mysql_fetch_array($data); 
$Bname = $info['Bname']; 
echo $Bname; 

mapfunction.php

var map; 
var Bname=""; 
function storelatlng(){ 
    var y = document.getElementById("Latitude").value; 
    var x = document.getElementById("Longitude").value 

    var getVars = "?y="+y+"&x="+x; 

    if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
     var request=new XMLHttpRequest(); 
    } 
    else 
    {// code for IE6, IE5 
     var request=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    request.open('GET','storelatlng.php'+getVars,true); 
    request.onreadystatechange = function(){ 
     if(request.readyState == 4){ 
      var xmlDoc = request.responseText; 
      document.getElementById("frmLat").value = xmlDoc; 
     } 
    } 
    request.send(null); 
    return false; 

} 
function initialize() { 
    if (GBrowserIsCompatible()) { 

    map = new GMap2(document.getElementById("map_canvas")); 
    map.setCenter(new GLatLng(22.419161, 114.207559), 17); 
    GEvent.addListener(map,"click", 
     function(overlay,latlng){ 
      var setLat = latlng.lat(); 
      var setLon = latlng.lng(); 
      setLat = Math.floor((Math.floor(setLat*100000)-2241187)/20); 
      setLon = Math.floor((Math.floor(setLon*100000)-11420020)/20); 
      //y 
      document.getElementById("frmLat").value = setLat; 
      //x 
      document.getElementById("frmLon").value = setLon; 
      var inputForm = document.createElement("form"); 
      inputForm.setAttribute("action",""); 
      inputForm.onsubmit = function(){storelatlng(); 
      return false; 
      }; 
    inputForm.innerHTML = '<fieldset style = "width:200px;">' 
     + '<legend> Mark Point </legend>' 
     + 'Please choose it '+Bname+' your starting or ending point.'+'<p></p>' 
     + '<label><input type="radio" name="choice" value="0" id="choice_s" />Start</label>' 
     + '<label><input type="radio" name="choice" value="1" id="choice_e" />End</label>' 
     + '<input type="submit" value="Save"/>' 
     + '<input type="hidden" id="Longtitude" value="'+setLon+'"/>' 
     + '<input type="hidden" id="Latitude" value="'+setLat+'"/>'; 

    map.openInfoWindow(latlng,inputForm); 
     }); 
<?php 
+0

Вы проследили, где возникает проблема? Является ли 'storelatlng.php' действительным lat/lng? Кроме того, есть ли причина, по которой вы жестко кодируете 'X = 2 и Y = 58' в' storelatlng.php'? – dgilland

ответ

0

Как минимум, убедитесь, что ваши функции и вызовы функций выполняются правильно. GEvent.addListener отсутствует закрывающий палец (после анонимной функции есть точка с запятой, что означает, что GEvent.addListener завершен), и в конце вашего образца кода есть дополнительный парс. Инициализация также выглядит так, что отсутствует скобка.

Смежные вопросы