Ich habe eine Funktion wie folgt aus:Ajax lesen können JSON POST Daten nicht
function pemeliharaan(){
var petugas = document.getElementById('petugas').value;
$.ajax({
type: "POST",
url: "http://localhost/sipetan/WebService/public/api/pemeliharaan",
data: "[{'id_petugas':'1','no_rek_pelanggan':'11111'}]",
dataType: "json",
contentType: "application/json"
}).done(function() {
alert('Pemeliharaan dikirim ke database!');
}).fail(function() {
alert("Input yang anda masukkan salah!");
var r=confirm("Ulangi?");
if (r)
{
window.location = "/";
}
else{};
});
}
Aber Laravel nicht meine JSON-Daten lesen kann. Laravel zurückgegeben:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id_pegawai' cannot be null (SQL: insert into `pemeliharaan` (`id_pegawai`, `no_rek_pelanggan`, `jenis`, `latitude`, `longitude`, `catatan`, `updated_at`, `created_at`) values (, , , , , , 2016-06-19 20:54:26, 2016-06-19 20:54:26))
es scheint, dass meine Daten (id_petugas und no_rek_pelanggan) werden von dieser Funktion nicht von mir gelesen.
Ich war die Struktur meiner Daten versucht Änderung: `
{'id_petugas':'1','no_rek_pelanggan':'11111'}
{'id_petugas':1,'no_rek_pelanggan':11111}
[{'id_petugas':1,'no_rek_pelanggan':11111}]
[{'id_petugas':'1','no_rek_pelanggan':'11111'}]
Immer noch nicht gearbeitet. Aber wenn ich RESTful Client benutze, funktioniert es perfekt. Hier ist mein Laravel Controller:
$Pemeliharaan=new pemeliharaan;
$Pemeliharaan->id_pegawai=Request::input('id_petugas');
$Pemeliharaan->no_rek_pelanggan=Request::input('no_rek_pelanggan');
$Pemeliharaan->jenis=Request::input('jenis');
$Pemeliharaan->latitude=Request::input('latitude');
$Pemeliharaan->longitude=Request::input('longitude');
$Pemeliharaan->catatan=Request::input('catatan');
$success=$Pemeliharaan->save();
if(!$success)
{
return Response::json("error saving",500);
}
return Response::json("success",201);
EDIT
Es ist auch perfekt funktionieren, wenn ich Datenform zu JSON auf meiner anderen Funktion verwendet:
jQuery('form#postPemeliharaan').bind('submit', function(event){
event.preventDefault();
var form = this;
var json = ConvertFormToJSON(form);
var id_pemeliharaan;
$.each(json,function (name, value){
if(name=="id_pemeliharaan"){
id_pemeliharaan=value;
}
});
$.ajax({
type: "PUT",
url: "http://localhost/sipetan/WebService/public/api/pemeliharaan/"+id_pemeliharaan,
data: json,
dataType: "json"
}).done(function() {
alert('Pemeliharaan dikirim ke database!');
}).fail(function() {
alert("Input yang anda masukkan salah!");
var r=confirm("Ulangi?");
if (r)
{
window.location = "/";
}
else{};
});
return true;
});
EDIT 2 (meinen eigenen Gelöst Problem): Aber ich änderte den contentType zu Formulardaten
function pemeliharaan(){
var petugas = document.getElementById('petugas').value;
var json = '[{"id_petugas":1,"no_rek_pelanggan":11111}]';
$.ajax({
type: "POST",
url: "http://localhost/sipetan/WebService/public/api/pemeliharaan",
data: [{"name": "id_petugas","value": 1},{"name": "no_rek_pelanggan","value": 11111},{"name": "longitude","value": 11111},{"name": "latitude","value": 11111},{"name": "jenis","value": 1}],
dataType: "json",
contentType: "application/x-www-form-urlencoded"
}).done(function() {
alert(petugas+' berhasil ditugaskan untuk melakukan pemeliharaan');
}).fail(function() {
alert("Input yang anda masukkan salah!");
var r=confirm("Ulangi?");
if (r)
{
window.location = "/";
}
else{};
});
}
Mögliche doppelte Versuchen: http://stackoverflow.com/a/24497091/2159528 –