javascript - 将检查从复选框传递到控制器
问题描述
感谢您花时间查看我的问题。我有一种情况是我想获取复选框“已检查”状态并将相应的值/ID返回给控制器。
想法是将输入字段的值添加到如下图所示的点:
您可能已经发现,我想给 Maverick 和 Sidney 教授加 200 分(虚拟数据)
这应该在我单击添加点按钮时发生。
我设法将输入值传递给控制器:
home.blade.php 的一小部分
<form action="/addpoints" method="post">
@csrf
<div class="field has-addons">
<div class="control has-icons-left">
<input class="input" type="tel" placeholder="" id="pointsInput" name="pointsInput">
<span class="icon is-small is-left">
<i class="fas fa-coins"></i>
</span>
</div>
<div class="control">
<button class="button is-info" id="addPoints">Add Points</button>
</a>
</div>
</div>
</form>
(如果类名看起来不熟悉,那是因为我使用的是 Bulma CSS。)
这是我尝试过的:
家庭控制器.php
public function addPoints(Request $request)
{
$member = new Member; <-- Member model contains a points fillable
$checked = $request->addPoints;
$points = $request->pointsInput; <-- this returns the correct data
return redirect('/home');
}
网页.php
Route::get('/home', 'HomeController@index');
Route::post('/home', 'HomeController@store');
Route::post('/addpoints', 'HomeController@addPoints')->name('addpoints');
Route::get('/home/{id}', 'HomeController@edit');
Route::patch('/home/{id}', 'HomeController@update');
Route::delete('/home/{id}', 'HomeController@destroy');
Route::get('/home/search', 'HomeController@search')->name('home.search');
包含复选框的表格的第一部分:
<tr>
<td><input type="checkbox" value="{{ $member->id }}" name="addPoints"></td>
<td>{{ $member->name }}</td>
<td>{{ $member->email }}</td>
<td>{{ $member->size }}</td>
<td>{{ $member->points }}</td>
预先感谢您查看此内容。任何帮助表示赞赏!
解决方案
您应该在上方表单的隐藏字段中跟踪这些复选框的值。您可以简单地获取所有选中的复选框并将它们的唯一标识符与 jQuery 或您正在使用的任何内容连接起来。
$('#my-form').on('submit', function (e) {
e.preventDefault();
var checked = [];
$('.my-checkbox').each(function() {
let checkboxId = $(this).data('id');
checked.push(checkboxId);
});
$('#my-hidden-field').val(checked);
$(this).submit();
});
这样做之后,您可以简单地获取隐藏字段的值并在 PHP 端使用它。
推荐阅读
- c# - 如何使用 yamldotnet 启用解析 yaml,它接受同名的列表和键值对?
- android - 如何在 react-navigation-material-bottom-tabs 中添加标签栏的阴影?
- laravel - 如何限制 whereHas 只匹配 where 条件?
- java - 如何访问添加到尚未声明的 JPanel 的 swing 组件?
- c# - 从超类调用重载构造函数后要调用的强制方法
- android - 在 Android API Level 15+ 上进行 AES-GCM 加密
- android - 如何将文件从 Firebase 存储下载到自定义文件夹?
- android - 如何在应用程序中模仿设备的弯曲边缘?
- python - 如何构建正则表达式捕获索引
- r - chisq.test: x and y must have the same length