2013-05-21 59 views
1

我编写了一个JavaScript函数来将GeoJson数据转换为WKT格式。当我直接在javascript代码中获得输入值时,它可以工作。但我不知道如何从PHP获得输入并将其发回。如何在PHP和JavaScript之间进行通信

这里是PHP代码:从文件

<?php 
    $geojson=file_get_contents("clipfeature.geojson"); 
    $WKT = $_POST['wkt']; 
    echo ($WKT); 
?> 

所以它得到GeoJSON的数据,我想从JavaScript函数接收转换WKT代码。

请帮我完成的JavaScript代码:

function converttoWKT(){ 
    $.ajax({ 
     type: "GET", 
     url: "readJson.php", 
     contentType: "application/json" 
    }).done(function (data) { 

    var JSONObject = How to give the value from PHP to this Variable; 

    var coordinate = JSONObject.features[0].geometry.coordinates; 
    var type= JSONObject.features[0].geometry.type; 


    var coordinate1 = ""; 
    var coordinate2 = ""; 
    for (var i=0; i< coordinate[0].length; i++) { 
    coordinate1= coordinate[0][i][0]+" "+coordinate[0][i][1]; 
    coordinate2=coordinate1+","+coordinate2; 
    } 

    var WKT= "\""+ type + "((" + coordinate2; 
     WKT=WKT.substring(0,WKT.length-1); 
     WKT=WKT+"))\"" 

    sendback (); 

}); 

    function sendback(){$.post("readJson.php", 
    {'wkt':How to send the value of var WKT back to php 'wkt' 
    }); 
    } 
+0

有尝试json_encode($ _ POST [ 'WKT']);在你的PHP脚本? –

+1

还要在php文件中设置你的头文件。 JavaScript期待json,所以你应该给它json。使用:header(“Content-Type:application/json; charset = utf-8”); – bottens

回答

1

基本上是:

var jsVar= "<? echo $myVariable_value_goes_in_here; ?>"; 

或者,如上面提到的:

var JSONObject = <? echo json_encode($WKT); ?>; 
        // this NEED TO BE json, otherwise syntax error in JS! 
1

既然你已经知道你的回报数据将JSON,您可以使用$.getJSON()以方便使用。这是一个$.get()请求配对JSON.parse()。使用$.getJSON()时,JSON将根据响应进行分析。要发回数据,只需使用jQuery的$.post()即可。

这是您的代码的编辑版本。

function converttoWKT() { 
    $.getJSON('clipfeature.geojson', function(data) { 
    var coordinate = data.features[0].geometry.coordinates; 
    var type = data.features[0].geometry.type; 

    var coordinate1 = ''; 
    var coordinate2 = ''; 
    for(var i = 0; i < coordinate[0].length; i++) { 
     coordinate1 = coordinate[0][i][0] + ' ' + coordinate[0][i][1]; 
     coordinate2 = coordinate1 + ',' + coordinate2; 
    } 

    var WKT = '"' + type + '((' + coordinate2; 
    WKT = WKT.substring(0, WKT.length - 1); 
    WKT = WKT + '))"' 

    sendback(WKT); 
    }); 
}; 

function sendback(data) { 
    $.post('readJson.php', { 
    'wkt': data 
    }); 
}; 
+0

谢谢。我解决了我的问题。起初,PHP仍然显示错误:未定义的索引。因为我刷新了网站,但没有刷新javaScrip。最后,我只是推“Shift”+刷新,更新JavaScript,它终于工作。 –

相关问题