如何根据我单击的复选框将整数添加到数组中?



我在我的Laravel项目中使用完整的日历,我需要在其中添加重复发生的事件。

我在 UI 中添加了表示一周中的每一天(周一、周二、周三等(的复选框。

在完整日历中,我添加了属性daysofweek

基本上:

  • 事件将在一周中的哪几天重复(它是一个整数数组(。

  • 每个整数代表一周中的某一天,0 表示星期日,1 表示星期一,依此类推...(例如:[ 2, 4 ] 表示事件每周二和周四重复(。

  • 如果省略,则假定该事件每天重复。

我想在星期一单击,一个整数将被添加到数组中,如下例所示:

$event_dow = [1];

如果我在星期一和星期二同时单击,数组将具有:

$event_dow = [1,2];

我不知道该怎么做。

按照下面我的代码:

事件控制器.php

public function store(Request $request)
{
//
$this->validate($request, [
'event_name' => 'required|string|min:2|max:255',
'daterange' => 'required',
]);
$time_start = $request->input('start_time');
$time_end = $request->input('end_time');
$tempDate = $request->input('daterange');
$temp2 = str_replace('-', null, $tempDate);
$temp2 = str_replace('/', '-', $temp2);
$temp3 = explode('  ', $temp2);
$date1 = date_create_from_format('m-d-Y', $temp3[0]);
$date2 = date_create_from_format('m-d-Y', $temp3[1]);
$event_dow = [];
if($request->has('monCheck'))
{
$$event_dow = $event_dow.'1';
};
if($request->has('tueCheck'))
{
$event_dow = $event_dow.'2';
};
if($request->has('wedCheck'))
{
$event_dow = $event_dow.'3';
};
if($request->has('thurCheck'))
{
$event_dow = $event_dow.'4';
};
if($request->has('friCheck'))
{
$event_dow = $event_dow.'5';
};
if($request->has('satCheck'))
{
$event_dow = $event_dow.'6';
};
if($request->has('sunCheck'))
{
$event_dow = $event_dow.'7';
};
$event = new event([
'event_name' => $request->input('event_name'),
'event_desc' => $request->input('event_desc'),
'event_venue' => $request->input('event_venue'),
'event_start' => date_format($date1, 'Y-m-d H:i:s'),
'event_finish' => date_format($date2, 'Y-m-d H:i:s'),
'event_venue' => $request->input('event_venue'),
'event_dow' => $request->input('event_dow'), //days of week
'evcat_id' => $request->input('evcat_id'),
'user_id' => $request->input('user_id'),

]);
$event->save();
Session::flash('success', 'Event Created Successfully');
return redirect()->route('event.sched');
}

刀片文件

<div class="row" style="margin-left: 50px;">
<div class="form-check form-check-inline">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="monCheck" id="monCheck">
<label class="custom-control-label" for="monCheck">Mon</label>
</div>
</div>

<div class="form-check form-check-inline">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="tueCheck" id="tueCheck">
<label class="custom-control-label" for="tueCheck">Tue</label>
</div>
</div>
<div class="form-check form-check-inline">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="wedCheck" id="wedCheck">
<label class="custom-control-label" for="wedCheck">Wed</label>
</div>
</div>
<div class="form-check form-check-inline">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="thurCheck" id="thurCheck">
<label class="custom-control-label" for="thurCheck">Th</label>
</div>
</div>
<div class="form-check form-check-inline">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="friCheck" id="friCheck">
<label class="custom-control-label" for="friCheck">Fri</label>
</div>
</div>
<div class="form-check form-check-inline">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="satCheck" id="satCheck">
<label class="custom-control-label" for="satCheck">Sat</label>
</div>
</div>
<div class="form-check form-check-inline">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="sunCheck" id="sunCheck">
<label class="custom-control-label" for="sunCheck">Sun</label>
</div>
</div>
</div>

您可以通过为每个复选框添加值来解决它。

<div class="row" style="margin-left: 50px;">
<div class="form-check form-check-inline">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="monCheck" id="monCheck" value="1">
<label class="custom-control-label" for="monCheck">Mon</label>
</div>
</div>

<div class="form-check form-check-inline">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="tueCheck" id="tueCheck" value="2">
<label class="custom-control-label" for="tueCheck">Tue</label>
</div>
</div>
<div class="form-check form-check-inline">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="wedCheck" id="wedCheck" value="3">
<label class="custom-control-label" for="wedCheck">Wed</label>
</div>
</div>
<div class="form-check form-check-inline">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="thurCheck" id="thurCheck" value="4">
<label class="custom-control-label" for="thurCheck">Th</label>
</div>
</div>
<div class="form-check form-check-inline">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="friCheck" id="friCheck" value="5">
<label class="custom-control-label" for="friCheck">Fri</label>
</div>
</div>
<div class="form-check form-check-inline">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="satCheck" id="satCheck" value="6">
<label class="custom-control-label" for="satCheck">Sat</label>
</div>
</div>
<div class="form-check form-check-inline">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="sunCheck" id="sunCheck" value="0">
<label class="custom-control-label" for="sunCheck">Sun</label>
</div>
</div>
</div>

您的控制器:

$event_dow = [];
if($request->has('monCheck'))
{
$event_dow[] = $request->monCheck;
};
if($request->has('tueCheck'))
{
$event_dow[] = $request->tueCheck;
};
if($request->has('wedCheck'))
{
$event_dow[] = $request->wedCheck;
};
if($request->has('thurCheck'))
{
$event_dow[] = $request->thurCheck;
};
if($request->has('friCheck'))
{
$event_dow[] = $request->friCheck;
};
if($request->has('satCheck'))
{
$event_dow[] = $request->satCheck;
};
if($request->has('sunCheck'))
{
$event_dow[] = $request->sunCheck;
};

或者你也可以用jQuery来解决它。试试这个

第一个添加按钮以提交请求。

<button id="submit" type="button">Save</button>

脚本:

<script>
$('#submit').click(function() {
let check = $('.custom-control-input:checked');
let eventDow = [];
check.each(function(i) {
eventDow[i] = $(this).val()
});
console.log(eventDow); // returns array of numbers 
});
</script>

最新更新