Gownload V3中的GDownloadUrl替换

时间:2013-02-28 03:42:02

标签: php google-maps-api-3

我想从php文件发送和接收数据。最好的方法是什么?

Google Map V3中GDownloadUrl的最佳替代品是什么?

这是我现有的功能,用于检查我是否成功插入:

function checkSaveGeoFenceData(data,code)
{
    //var geoFenceDataJson = eval('(' + json + ')'); 

    if(code===200)
    {
        //alert("JSON VALUE : "+data+"test");
        if(data=="SMGFE\n")
        {
            alert("Geo Fence " + 
                document.getElementById("geoFenceName").value + 
                " Already Exist");
        }
        else {
            alert("Successfully Inserted");

            window.opener.location.reload();
            window.close();
        }
    }
    else
    {
        alert("Fail to insert");
    }
}

从php获取数据的现有函数:

function processtViewData(json)
{
    dataJson = eval('(' + json + ')'); 
    var totalData = dataJson.data1.length;
}

1 个答案:

答案 0 :(得分:1)

API V3中没有与GDownloadUrl等效的内容。通过AJAX加载数据是一项常规的javascrip任务,并非特定于API或Google Maps。

这是一个将执行相同操作的函数:

function ajaxLoad(url,callback,postData,plain) {
    var http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType && plain) {
            http_request.overrideMimeType('text/plain');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
    if (!http_request) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    http_request.onreadystatechange =  function() {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                eval(callback(http_request));
            }
            else {
                alert('Request Failed: ' + http_request.status);
            }
        }
    };

    if (postData) { // POST
        http_request.open('POST', url, true);
        http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');  
        http_request.setRequestHeader("Content-length", postData.length);
        http_request.send(postData);
    }
    else {
        http_request.open('GET', url, true);
        http_request.send(null);
    }
}

确保您的服务器使用content-type:text/plain标题

进行响应

使用postdsata调用它:

var postdata = 'a=1&b=2';
ajaxLoad(serverUrl,myCallback,postdata);



function myCallback(req){
var txt = req.responseText;

// optional, if needed to evaluate JSON
    eval(txt);
}