0
I have the following table below, with a listing, there is a TD, which the user can choose between yes and no, html tag option, would like to know how to make the change from yes to no or vice-versa, via ajax, so that it is not necessary to keep making client server request, and update via ajax. Below follows image of how the table is.
I am currently trying to do the ajax this way, but it is giving error:
jQuery(document).ready(function(){
jQuery('#viewpergunta').change(function(e){
e.preventDefault();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
jQuery.ajax({
url: '../perguntascadastro/1',
method: 'post',
data: {
viewpergunta: jQuery('#viewpergunta').serialize(),
},
success: function(result){
console.log(result);
}});
});
});
Below follows my route which gives to update in the bank, the same route I use for registration, serves to atulizar.
Route::any('/perguntascadastro/{id}', 'PerguntasController@addPerg')->where('id', '[0-9]+');
My controller
public function addPerg(PerguntasRequest $request, $id){
if($id == 0){
Perguntas::create($request->all());
}else{
Perguntas::find($request->id)->update(Request::except($id));
}
return redirect()->action('PerguntasController@index', $id = 0);
}
My Html only the table part
<td>
<select class="form-control" id="viewpergunta" name="viewpergunta">
<option value="{{ $lista->viewpergunta == 1 ? 1 : 0 }}">{{ $lista->viewpergunta == 1 ? "Sim" : "Não" }}</option>
<option value="{{ $lista->viewpergunta == 1 ? 0 : 1 }}">{{ $lista->viewpergunta == 1 ? "Não" : "Sim" }}</option>
</select>
</td>
what error is giving?
– adventistaam
Failed to load Resource: the server responded with a status of 419 (Unknown status)
– Daniel Rosendo de Souza
How is set in the header your goal?
– adventistaam
Like using the Laravel, I’m only using "@csrf"
<meta charset="utf-8">
 <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
 <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no' name='viewport' />
– Daniel Rosendo de Souza
Try adding one more like this
<meta name="csrf-token" content="{{ csrf_token() }}">
– adventistaam
now gave error 422 (Unprocessable Entity)
– Daniel Rosendo de Souza
Let’s go continue this discussion in chat.
– adventistaam
solved? have you tried debugging your function to see if the ajax reaches it? it is worth noting that to analyze the result you will have to look at the network tab in the browser!
– Lodi