/ / Splicing a potom uloženie json array cez ajax - javascript, polia, json, ajax

Spájanie a ukladanie json poľa pomocou ajax - javascript, arrays, json, ajax

Mám problémy so získaním môjho súboru jsonprijať zmeny. Snažím sa odstrániť objekt z poľa a zdá sa, že funguje, ale potom, keď sa pozriem na pole json na serveri, zostáva nezmenený. Čo mi tu chýba?

Tu je funkcia, ktorú používam:

$(function() {
$("#rectangle-delete").click(function() {

var selection = $("#templateSelection > option:selected").text();

var json = (function () {
var json = null;
$.ajax({
"async": false,
"global": false,
"type": "POST",
"contentType":"application/json",
"url": "server/php/data/" + selection,
"dataType": "json",
"success": function (data) {
json = data;
}
});
return json;
})();

var ID_clicked = $(".rectangle.selected.targeted").attr("id");

console.log("initial array is " + json);

json.some(function(e) {
if (e.ID === ID_clicked) {

var values = json.map(function(e) { return e.ID; });
var index = json.map(function(e) { return e.ID; }).indexOf(ID_clicked);
var data = JSON.stringify(json[index]);

json.splice(index, 1);

return true; // stop the array loop
}
});

console.log("new array is " + json);
});
});

Konzola zobrazuje:

initial array is [object Object],[object Object],[object Object]

a potom

new array is [object Object],[object Object]

ale stále nemením skutočné json súbor na serveri.

odpovede:

2 pre odpoveď č. 1

Keď stiahnete zo servera json, nedostanete odkaz na objekt na serveri, ale dostanete kópiu údajov.

Takže iba upravujete údaje o svojom klientovi.

Ak chcete aktualizovať objekt na serveri, mali by ste oznámiť zmenu na serveri (alebo zvrátiť logiku, ktorá umožní serveru vykonať výpočet a získať výsledok priamo na klientovi).