更新Json文件并将数据发送到php

时间:2014-03-21 23:09:50

标签: php json

我想修改一个JSON文件,但是当我看到结果文件时,我发现修改没有完成,内容仍然相同。这是我的功能代码:

...
var res=null;
var data;

function reqAjax(){
    $.getJSON( "my_data.json", function(data) {     
          $.each( data.features, function( key, val ) {
            $.each( val.geometry.coordinates, function( key2, val2 ) {
                //translate gps coords in WGS84
                res = proj4(source,dest,val2);
                val2 = res;
            });
          });

         $.ajax({
            type: 'POST',
            url: 'modify_json.php',
            data: 'data='+ $.toJSON(data),
            dataType: 'text',
            success: function(reponse){ 
                alert(reponse);
            },
            error: function(objet,status,error){console.log(objet);console.log(status);console.log(error);alert('Erreur');}

        });

    });

}
</script>

以下是我的json文件开头的摘录:

{"name":"Générique00","type":"FeatureCollection","crs":{"type":"name","properties": "name":"EPSG:3943"}},"features":[{"type":"Feature","geometry":"type":"LineString","coordinates":[[1572278.0427,2265904.7471],[1572297.3459,2265927.3032],[1572345.662,2266087.3337],[1572402.9689,2266282.1927],[1572449.9837,2266423.1244],[1572460.9373,2266460.3007],[1572486.8947,2266547.9981],[1572493.0022,2266572.4946]]},"properties":{"obs_gestion":"Grand Toulouse","Nom_voie":"rue gamelin","obs_crea":"2011","Commune":"Toulouse","obs_type":"bandes","Longueur_m":704,"Carte_RV":"0","code_insee":"31555","obs_entre":0,"Pole":2,"Revetement":"enrobe","Mot_directeur":"GAMELIN","type":"RC","Carte_velo":"Bandes cyclables ou couloir bus","Section":"vauquelin - mermoz"}},...

这是我的modify_json.php文件:

if(isset($_POST['data'])){


    file_put_contents('test2.json', ($_POST['data']));

}

你知道什么是错的吗? 欢迎提出任何建议:)

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

将您的javascript更新为:

$.ajax({
    type: 'POST',
    url: 'modify_json.php',
    data: { newData: $.toJSON(data) },
    dataType: 'text',
    success: function(reponse){ 
        alert(reponse);
    },
    error: function(objet,status,error){console.log(objet);console.log(status);console.log(error);alert('Erreur');}
});

并将您的PHP更新为:

if (isset($_POST['newdata'])){
    file_put_contents('test2.json', $_POST['newData']);
}