有人可以幫我撰寫我制作的代碼嗎?,我的單選按鈕無法在 laravel 8 中使用 ajax jquery 自動保存資料,而且我沒有收到錯誤訊息
我的控制器:Q_AnswersController
public function storeAns(Request $request)
{
$model = new Q_Answer;
$model->user_id = Auth::id();
$model->topic_id = $request->topic_id;
$model->question_id = $request->question_id;
$model->user_answer = $request->radio_ans;
$model->answer = $request->answer;
$topik = $request->topic_id;
$model->save();
return redirect('qanswers/'. $topik);
}
這是我的路線:
Route::post('/storeAns',[Q_AnswersController::class, 'storeAns'])->name('storeAns');
這是我的刀片:
@foreach ($datas as $key=>$value)
<p>{{ $value->question }}</p>
<p><input type="radio" id="radio1" name="radio_ans" value="{{ $value->a }}"><label> {{ $value->a }}</label></p>
<p><input type="radio" id="radio2" name="radio_ans" value="{{ $value->b }}"><label> {{ $value->b }}</label></p>
<p><input type="radio" id="radio3" name="radio_ans" value="{{ $value->c }}"><label> {{ $value->c }}</label></p>
<p><input type="radio" id="radio4" name="radio_ans" value="{{ $value->d }}"><label> {{ $value->d }}</label></p>
<p><input type="radio" id="radio5" name="radio_ans" value="{{ $value->e }}"><label> {{ $value->e }}</label></p>
<p><input type="radio" id="radio6" name="radio_ans" value="{{ $value->f }}"><label> {{ $value->f }}</label></p>
<input type="hidden" name="topic_id" class="form-control" readonly value="{{ $value->topic_id }}">
<input type="hidden" name="answer" class="form-control" readonly value="{{ $value->answer }}">
<input type="hidden" name="id" class="form-control" readonly value="{{ $value->id }}">
<input type="hidden" name="question_id" class="form-control" readonly value="{{ $datas->currentPage() }}">
<input type="hidden" name="user_id" class="form-control" hidden readonly value=" {{ Auth::id(); }} " >
@endforeach
這是我的腳本:
$(document).ready(function() {
$('input[type="radio"]').click(function() {
var user_id = $("#user_id").val();
var topic_id = $("#topic_id").val();
var question_id = $("answer").val();
var answer = $("answer").val();
var user_answer = $("radio_ans").val();
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: "{{ url('qanswers.storeAns') }}",
method: "POST",
data:{
user_id:user_id,
topic_id:topic_id,
question_id:question_id,
answer:answer,
user_answer:user_answer
} ,
success: function(data) {
$('#alert').text('Data Inserted Successfully..');
}
});
});
});
真的很感謝大家幫忙,謝謝
uj5u.com熱心網友回復:
您在 jquery 中使用單選按鈕名稱獲取單選按鈕值,但此語法給出未定義的值
var user_answer = $("radio_ans").val();
你可以試試這個 -
var user_answer = $("input[name=radio_ans]:checked").val();
uj5u.com熱心網友回復:
您在 ajax 請求和后端發送 user_answer 密鑰,讀取 $request->radio_ans 而不是 $request->user_answer。所以改變這一行:
$model->user_answer = $request->radio_ans;
至
$model->user_answer = $request->user_answer;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/485136.html
標籤:html jQuery mysql 阿贾克斯 拉拉维尔
