Ajax Laravel retourner la vue 500 Erreur

Je reçois chaque diapositive de la diapositive (Jquery Ui Slider) via Ajax à mon contrôleur.

Le Slider + Ajax ressemble à ceci:

$("#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); } }); }, }); 

J'ai donc ceci dans ma tête:

 <meta name="csrf-token" content="{{ csrf_token() }}"> 

Ma route ressemble à ceci:

 Route::post('edit/{productID}', ['as' => 'editProductPost', 'uses' => 'ProductController@editProductPost']); 

Et dans ma méthode de contrôleur je l'appelle comme ceci:

 public function editProductPost(Request $request) { $sliderValue = $request->get('value'); Log::info($sliderValue); return view('productRom.edit', [ 'sliderValue' => $sliderValue ]); } 

Log :: info ($ sliderValue) me dit que j'obtiens la valeur du curseur correcte sur chaque diapositive.

Lorsque j'essaie de revenir à ma vue d'édition, j'obtiens cette erreur dans la console:

POST http: // localhost / myApp / public / product / edit / 73 500 (Erreur interne du serveur)

Comment puis-je resoudre ceci?

modifier

Puisque j'ai cette ligne à mon avis:

 <form action="{{ route($route) }}"...> 

La variable de route n'a pas été définie, donc j'ai ajouté ceci dans mon relevé de retour.

 return view('productRom.edit', [ 'sliderValue' => $sliderValue, 'route' => 'editProductPost' ]); 

L'erreur est terminée mais lorsque j'essaie d'accéder à la variable $sliderValue comme ceci:

 <p>{{ isset($sliderValue) ? $sliderValue : "nothing" }}</p> 

Il ne m'imprime nothing

modifier

Manette:

  public function editProductPost(Request $request) { return response()->json([ 'sliderValue' => $request->get('value') ]); } 

Afficher (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'); } } }); 

Votre méthode de contrôleur devrait ressembler à ceci:

 public function editProductPost(Request $request) { return response()->json([ 'sliderValue' => $request->get('value') ]); } 

Vous ne devriez pas retourner une vue à une requête ajax.

Votre méthode de succès ajax devrait ressembler à ceci (par exemple):

 // first arg is the data returned by the controller method success: function (response) { console.log(response); } 

Et il devrait sortir quelque chose comme ceci:

 { 'sliderValue': 4 } 

Votre route est nommée editProductPost mais vous êtes à la recherche de editProduct