Ich bekomme jeden Schieberegler Wert in Folie (Jquery Ui Slider) über Ajax zu meinem Controller.Ajax Laravel Rückansicht 500 Fehler
Der Slider + Ajax sieht wie folgt aus:
$("#sliderNumCh").slider({
range: "min",
min: 0,
max: 20,
step: 1,
value: numbersOfChapters,
change : function(e, slider){
$('#sliderAppendNumCh').empty();
var sliderValue = slider.value;
var getSliderVal = document.getElementById('sliderValue').value = sliderValue;
var getPrId = document.getElementById('editId').value;
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: 'post',
url: "{{ Route('editProductPost', $product->id) }}",
headers: {
'X-Requested-With': 'XMLHttpRequest'
},
data: {
value: getSliderVal,
productId : getPrId
},
success: function (option) {
console.log(getSliderVal);
}
});
},
});
So habe ich dies in meinem Kopf:
<meta name="csrf-token" content="{{ csrf_token() }}">
Meine Route wie folgt aussieht:
Route::post('edit/{productID}', ['as' => 'editProductPost', 'uses' => '[email protected]']);
Und in meine Controller-Methode nenne ich das so:
public function editProductPost(Request $request)
{
$sliderValue = $request->get('value');
Log::info($sliderValue);
return view('productRom.edit', [
'sliderValue' => $sliderValue
]);
}
Log :: info ($ sliderValue) sagt mir, dass ich den richtigen Schieberegler Wert auf jeder Folie erhalten.
Wenn ich versuche, meine Bearbeitungsansicht zurückzukehren bekomme ich diesen Fehler in der Konsole:
POST http://localhost/myApp/public/product/edit/73 500 (Internal Server Error )
Wie kann ich dieses Problem lösen?
bearbeiten
Da ich diese Zeile aus meiner Sicht:
<form action="{{ route($route) }}"...>
Die Route Variable nicht so definiert wurde, fügte ich in meiner return-Anweisung.
return view('productRom.edit', [
'sliderValue' => $sliderValue,
'route' => 'editProductPost'
]);
Der Fehler ist weg, aber wenn ich versuche, die $sliderValue
Variable wie diese zuzugreifen:
<p>{{ isset($sliderValue) ? $sliderValue : "nothing" }}</p>
druckt es mir nothing
bearbeiten
Controller:
public function editProductPost(Request $request)
{
return response()->json([
'sliderValue' => $request->get('value')
]);
}
anzeigen (Ajax):
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: 'post',
url: "{{ Route('editProductPost', $product->id) }}",
headers: {
'X-Requested-With': 'XMLHttpRequest'
},
data: {
value: getSliderVal,
productId : getPrId
},
success: function (response) {
// check it has some data
if (response.length) {
// spit it out
console.log(response);
} else {
console.log('nothing returned');
}
}
});
Sie sagte: „Wenn ich versuche, meine bearbeiten zurückzukehren Ich erhalte diesen Fehler in der Konsole "versuchen Sie, auf die Anfrage zu klicken und was sehen Sie unter Vorschau? – haakym
@haakym Ok Ich denke, ich habe es schlecht bearbeiten Sie die Frage schnell – utdev
1. Sie haben nicht getan, was ich in meinem ersten Kommentar gesagt habe. 2. Wie ich in unserem Chat neulich gesagt habe "... gibt Ihre Methode editProduct eine Ansicht zurück, wenn Sie sie für AJAX verwenden, geben Sie keine Ansicht zurück, geben Sie JSON-Daten" http://chat.stackoverflow.com zurück/Abschrift/Nachricht/31766104 # 31766104 - hoffe, das ist klar. – haakym