javascript - 将复选框值传递给 laravel 控制器
问题描述
我需要使用 jQuery 获取复选框的值并将其传递给我的 Laravel 控制器,以便我可以将值存储在数据库中。
我需要值为真或假/1或0...不能为空。
如何将复选框值传递给数据库?
这是复选框:
<input type="checkbox" value="true" name="cats" id="cat" checked>
这是我的脚本,它也可以毫无问题地获取其他值:
function updateExtraFields(fieldName, selector) {
$('form input[name="' + fieldName + '"]').val($(selector).val());
}
$('#cat').on('click', function() {
updateExtraFields('cats', '#cat').prop('checked');
});
$('#dog').on('change', function() {
updateExtraFields('dogs', '#dog');
});
$('#bird').on('change', function() {
updateExtraFields('birds', '#bird');
});
//Something else I was trying... $("#cat").attr("checked") ? 1 : 0;
控制器:
$xxxx->table_name()->create([
'cats' => $request->cats === 'true',
'dogs' => $request->dogs,
'birds' => $request->birds,
]);
更新/回答 我最终弄清楚了我的问题。我需要创建一个隐藏字段来传递复选框值,然后我可以存储在我的数据库中
<input type="checkbox" value="" name="cats" id="cat" checked>
<input type="hidden" value="" name="cats" id="hidden_check">
$(document).ready(function() {
//Added value on page load
$('#cat').attr('value', '1')
$('#hidden_check').attr('value', '1')
// Changed value when checked
$('#cat').on('change', function() {
if ($(this).is(':checked')) {
$(this).attr('value', '1');
} else {
$(this).attr('value', '0');
}
//Sent value to hidden field
var checkbox_field_value = $(this).val();
$('#hidden_check').val(checkbox_field_value);
});
});
这段代码对我有用,但如果有更简洁的编写方式,请告诉我。
解决方案
您可以使用 Ajax 将值传递给控制器。以下代码演示了如何做到这一点
var catStatus=$('input[name="cats"]:checked'); // get the value of the checkbox
/*Now make the ajax call*/
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: '/sendcatStatus',
datatType : 'json',
type: 'POST',
data: {
status: catStatus
},
success:function(response) {
alert(response);
}
});
/*Laravel route*/
Route::post('/sendcatStatus','ControllerName@methodName');
/*Your Contoller Method */
public function methodName(Request $request){
dd($request->input('status'));
}
我已经为一个复选框显示了这个。同样,您可以使用 ajax 调用来发送多个数据。
推荐阅读
- python - 模型未在 Django 模板中呈现
- python - [Django]提交表单后如何在不刷新页面的情况下显示消息(正确或错误)?
- amazon-web-services - 如何使用 proxy+ 处理 api 网关上的根资源以返回正文?
- python - 关于如何停止我的按钮点击 tkinter 的问题?
- python - 从熊猫数据框中将所有列放入单个系列中
- javascript - 使用 fs (javascript) 将数据写入文件时遇到问题
- python - 在 Pandas 中查看 Stata 变量标签
- java - Java中的数组列表和文本文件读取
- google-maps - 如何点击 googlemap pin
- r - 有什么方法可以在使用 R 传单包创建的交互式地图的表面上显示邮政编码?