选择字段有问题。
<select id="correct" name="ans[]">
<option value="0">False</option>
<option value="1">True</option>
</select>
Onclick,我添加了更多的选择字段,但是当我尝试用ajax插入时,它只获取第一个选择的字段值。
Javascript代码
$("#create").click(function (e) {
e.preventDefault();
var ans = [];
$('input[name="answer[]"]').each(function () {
ans.push(this.value);
});
$.ajax({
type: 'POST',
url: '/add_question',
data: {answer: ans},
dataType: 'JSON',
success: function (data) {
var msg = $("#msg").append(data.msg).fadeIn(500);
msg.fadeOut(7500)
$("#question").val("");
$("#answer").val("");
},
error: function (data) {
//alert(data)
}
});
});
Laravel控制器
公用函数存储(请求$DATA){
foreach ($data['ans'] as $keys => $items) {
$answer->answer= $items;
}
$answer->save();
return response()->json(['msg' => 'successfull']);
}
是否确定提取的是input
而不是select
? 我试了一下,效果很好。
<select id="correct1" name="ans[]">
<option value="0">False</option>
<option value="1">True</option>
</select>
<select id="correct2" name="ans[]">
<option value="0">False</option>
<option value="1">True</option>
</select>
<select id="correct3" name="ans[]">
<option value="0">False</option>
<option value="1">True</option>
</select>
<button onclick="send()">send</button>
<script>
function send(){
let el = $("select[name='ans[]']");
let arr = [];
el.each(function() {
arr.push(this.value);
});
console.log(arr);
}
</script>