我正在尝试根据我的逻辑更新字段$medic->current
。
我是ajax的新手,我只需要开始就可以。
在我的代码中,我计算了两个日期{$ medic-> end_day,当前日期}之间的差。根据日期的不同,我更改“当前”字段。 如果差异<0,则current = 0,否则current = 1是我要尝试的操作。
因此,如何使用AJAX编辑$medic
的“当前”字段。
下面是代码。
<script>
window.onload = checkcurrent;
var today = new Date();
@foreach($medics as $medic)
@if($medic->current == 1)
function checkcurrent()
{
var status = {{$medic->current}};
var last_date= new Date('{{ \Carbon\Carbon::createFromFormat('d/m/Y', $medic->end_day)->toDateString() }}');
var new_last_date = new Date(last_date.getFullYear(),last_date.getMonth(),last_date.getDate());
var diff = parseInt((new_last_date - today) / (1000 * 60 * 60 * 24));
if(diff<0)
{
status = 0;
$.ajax({
url: "stocks/{stock_tag}/medications/updatecurrent/{info_id}",
type: "put",
data: { current: 0 } ,
success: function (response) {
console.log('success');
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
}
else
{
status = 1;
}
}
@endif
@endforeach
</script>
这也是我在控制器中的功能:
public function updatecurrent($stock_tag,$info_id)
{
$stock = Stock::find($stock_tag);
$findInformation= Medication::where('id','=',$info_id)->first();
$id=Input::get('current');
$stock->under_medication=$id;
$findInformation->current=$id;
$stock->save();
$findInformation->save();
}
我只希望获得有关Ajax代码的帮助,因为其他方面都可以正常工作。 当状态为0时,我想将“当前”字段编辑为0。 该怎么做?
答案 0 :(得分:0)
我已经解决了我的问题。实际上,我在模型本身中创建了一个函数以实现结果。
下面是代码:
public function autocheck()
{
$stock =Stock::where('tag_no','=', $this->attributes['tag'])->first();
$medication =Medication::where('tag','=',$stock->tag_no)->where('current','=',1)->first();
$today = Carbon::now();
list($enddays_day, $enddays_month, $enddays_year) = explode('/', $medication->end_day);
$last_day = Carbon::createFromDate($enddays_year,$enddays_month,$enddays_day);
$difference = $last_day->diffInDays($today);
if ($difference == 0) {
return "ends today";
}
else
if ($last_day < $today)
{
$medication->current = 0;
$stock->under_medication = 0;
$medication->save();
$stock->save();
return "Finished Medication ";
}
else
{
return $difference." day left";
}
}
要使该功能正常工作,只需使用{{$paramater->function_name()}}
。下面是我的代码:
@if ($medic->current == 1)
<h2>Status : {{ $medic->autocheck() }}</h2>
@endif