название в основном говорит обо всем.
Я собираю некоторые данные и добавляю их в объект formData, чтобы поместить их в мой файл PHP и обработать все остальное.
Моя функция Ajax:
save.addEventListener("click", function(e){
e.preventDefault();
getAllContents();
console.log(updateObj);
updateObj = JSON.stringify(updateObj);
console.log(updateObj);
$.ajax({
url: "test.php",
type: "POST",
data: updateObj,
success: function(response){
console.log("Success: ", response);
},
error: function(response){
console.log("Error: ", response);
}
});
});
UpdateObj содержит все, что я добавил в объект formData. Журнал консоли этой переменной возвращает все. Так что проблема должна быть прямо в ajax POST.
Обновить Содержимое console.log (updateObj):
[{"row_id":1,"status":"Anmeldung","ma_name":"AA","datum":"/","fa1":"testname1","fa2":"testname2","limit":"10.000","gruppe_kredit":"/","omv_kdnr":"8124213","sap_kdnr":"/","fos":"/","hga_kdnr":"/"},{"row_id":3,"status":"Anmeldung","ma_name":"AA","datum":"/","fa1":"ame1","fa2":"name2","limit":"12.000","gruppe_kredit":"/","omv_kdnr":"81515616","sap_kdnr":"/","fos":"/","hga_kdnr":"/"},{"row_id":2,"status":"Kunde","ma_name":"AA","datum":"/","fa1":"newname1","fa2":"newname2","limit":"15.323","gruppe_kredit":"/","omv_kdnr":"81515616","sap_kdnr":"/","fos":"/","hga_kdnr":"/"}]
Мой PHP-файл содержит только print_r
из $_POST
<?php
print_r($_POST);
?>
Это то, что моя функция успеха журналов вызовов ajax:
success: Array
(
)
UPDATE2
Вот как мой объект formData заполняется:
// console.log($test.length);
var updateObj = [];
function getAllContents(){
var $tableTr = $('tbody tr');
updateObj = [];
$tableTr.each(function(index, element){
var $row_id = $(this).data("rowid");
// console.log("ID in Table: " + $row_id);
var status = $(this).find('#status option:selected').val();
// console.log("ID "+$row_id+" in der Table hat den Status: "+status);
var ma_name = $(this).find('#ma-name').val();
// console.log(ma_name);
var datum = $(this).find('#datum').val();
// console.log(datum);
var firmenname1 = $(this).find('#firmenname1').val();
// console.log(firmenname1);
var firmenname2 = $(this).find('#firmenname2').val();
// console.log(firmenname2);
var limit = $(this).find('#limit').val();
// console.log(limit);
var gruppe_kredit = $(this).find('#gruppe_kredit').val();
// console.log(gruppe_kredit);
var omv_kdnr = $(this).find('#omv_kdnr').val();
// console.log(omv_kdnr);
var sap_kdnr = $(this).find('#sap_kdnr').val();
// console.log(sap_kdnr);
var fos = $(this).find('#fos').val();
// console.log(fos);
var hga_kdnr = $(this).find('#fos').val();
// console.log(hga_kdnr);
var pushObj = {
row_id: $row_id,
status: status,
ma_name: ma_name,
datum: datum,
fa1: firmenname1,
fa2: firmenname2,
limit: limit,
gruppe_kredit: gruppe_kredit,
omv_kdnr: omv_kdnr,
sap_kdnr: sap_kdnr,
fos: fos,
hga_kdnr: hga_kdnr
};
updateObj.push(pushObj);
// PushObjekt mit Inhalt befüllen und das PushObjekt ins updateObjekt einbetten
//console.log(updateObj);
});
}
getAllContents();
Проблема в том, что вы пытаетесь отправить массив объектов JS. в этом случае нормально JSON.stringify(obj)
не будет работать, так как на отдельных объектах нет ключей, поэтому объект не будет правильно закодирован в строку, поэтому на стороне сервера он не будет проанализирован должным образом и не будет передан $_POST
, Одним из решений может быть
updateObj = [{"row_id":1,"status":"Anmeldung","ma_name":"AA","datum":"/","fa1":"testname1","fa2":"testname2","limit":"10.000","gruppe_kredit":"/","omv_kdnr":"8124213","sap_kdnr":"/","fos":"/","hga_kdnr":"/"},{"row_id":3,"status":"Anmeldung","ma_name":"AA","datum":"/","fa1":"ame1","fa2":"name2","limit":"12.000","gruppe_kredit":"/","omv_kdnr":"81515616","sap_kdnr":"/","fos":"/","hga_kdnr":"/"},{"row_id":2,"status":"Kunde","ma_name":"AA","datum":"/","fa1":"newname1","fa2":"newname2","limit":"15.323","gruppe_kredit":"/","omv_kdnr":"81515616","sap_kdnr":"/","fos":"/","hga_kdnr":"/"}];
// window.updateObj =
console.log(updateObj);
Obj = {};
$.each(updateObj,function(x,obj){ Obj[""+x] = obj;});
// updateObj = JSON.stringify(updateObj);
updateObj = JSON.stringify(Obj);
console.log(Obj);
$.ajax({
url: "//localhost:80/test/",
type: "POST",
data: updateObj,
success: function(response){
console.log("Success: ", response);
},
error: function(response){
console.log("Error: ", response);
}
});
————————Обновить———————-
Вы также можете сделать это следующим образом, но, думаю, будет немного сложно декодировать данные на сервере.
updateObj = [{"row_id":1,"status":"Anmeldung","ma_name":"AA","datum":"/","fa1":"testname1","fa2":"testname2","limit":"10.000","gruppe_kredit":"/","omv_kdnr":"8124213","sap_kdnr":"/","fos":"/","hga_kdnr":"/"},{"row_id":3,"status":"Anmeldung","ma_name":"AA","datum":"/","fa1":"ame1","fa2":"name2","limit":"12.000","gruppe_kredit":"/","omv_kdnr":"81515616","sap_kdnr":"/","fos":"/","hga_kdnr":"/"},{"row_id":2,"status":"Kunde","ma_name":"AA","datum":"/","fa1":"newname1","fa2":"newname2","limit":"15.323","gruppe_kredit":"/","omv_kdnr":"81515616","sap_kdnr":"/","fos":"/","hga_kdnr":"/"}];
console.log(updateObj);
Obj = {};
Obj["updateObj"] = updateObj;
updateObj = JSON.stringify(Obj);
$.ajax({
url: "//localhost:80/test/",
type: "POST",
data: updateObj,
success: function(response){
console.log("Success: ", response);
},
error: function(response){
console.log("Error: ", response);
}
});
———-update2.0
updateObj = [{"row_id":1,"status":"Anmeldung","ma_name":"AA","datum":"/","fa1":"testname1","fa2":"testname2","limit":"10.000","gruppe_kredit":"/","omv_kdnr":"8124213","sap_kdnr":"/","fos":"/","hga_kdnr":"/"},{"row_id":3,"status":"Anmeldung","ma_name":"AA","datum":"/","fa1":"ame1","fa2":"name2","limit":"12.000","gruppe_kredit":"/","omv_kdnr":"81515616","sap_kdnr":"/","fos":"/","hga_kdnr":"/"},{"row_id":2,"status":"Kunde","ma_name":"AA","datum":"/","fa1":"newname1","fa2":"newname2","limit":"15.323","gruppe_kredit":"/","omv_kdnr":"81515616","sap_kdnr":"/","fos":"/","hga_kdnr":"/"}];
// window.updateObj =
console.log(updateObj);
Obj = {};
var Obj = updateObj.reduce(function(o, v, i) {
o[i] = v;
return o;
}, {});
updateObj = JSON.stringify(Obj);
console.log(Obj);
$.ajax({
url: "//localhost:80/test/",
type: "POST",
data: updateObj,
success: function(response){
console.log("Success: ", response);
},
error: function(response){
console.log("Error: ", response);
}
});
Попробуй это-
на аяксе
$.ajax({
url: "test.php",
type: "POST",
dataType: "json",
data: updateObj,
success: function(response){
console.log("Success: ", response);
},
error: function(response){
console.log("Error: ", response);
}
На Php
<?php
echo json_encode($_POST,true);
?>
Попробуйте с параметром json, если хотите получить ответ в формате json [Редактировать]
save.addEventListener("click", function(e){
e.preventDefault();
getAllContents();
console.log(updateObj);
updateObj = JSON.stringify(updateObj);
console.log(updateObj);
$.ajax({
url: "test.php",
type: "POST",
dataType: "json",
data: ({data:updateObj}),
success: function(response){
console.log("Success: ", response);
},
error: function(response){
console.log("Error: ", response);
}
});
});
и на стороне сервера
parse_str ($ _ POST [ ‘данные’], $ данных);
echo json_encode ($ data); выход;