jquery - 使用 Laravel/ajax 停用开关盒时将数据设置为 NULL,并在激活开关盒时插入数据
问题描述
当我激活开关框时,我成功了,列 paye 和付款日期被修改到数据库,但我被困在以下几点:当我停用开关框时,我必须将 paye 列修改为 0 并将 payment_date 列修改为空入数据库。
我有以下代码:
<div class="modal-body">
<form id="date_payement" method="post" action="projets" enctype="multipart/form-data">
{{ csrf_field() }}
<input type="hidden" id="id_hidden" name="id_projet" />
<div class="form-group">
<label for="casting_date_naissancee">Date de payement</label>
<div class="input-group date">
<input type="text" class="form-control" id="date_paiement" name="date_paiement">
<span class="input-group-text input-group-append input-group-addon" id="spanEstPaymentDate">
<i class="simple-icon-calendar"></i>
</span>
</div>
</div>
<div class="form-group" align="center">
<input type="hidden" name="action" id="action" />
<input type="hidden" name="hidden_id" id="hidden_id" />
<input type="submit" name="action_button" id="action_button" class="btn btn-warning" value="Enregistrer" />
</div>
<div class=" col-md-6">
<span id="form_result"></span>
</div>
</form>
</div>
以及以下脚本:
$(document).ready(function(){
$(document).on('change', '.selectRow1', function(){
$('.modal-title').text("Saisir la date de paiement");
$('#action_button').val("Enregistrer");
$('#action').val("Enregistrer");
$('#formModal').modal('show');
var paye = $(this).prop('checked') == true ? 1 : 0;
console.log(paye) ;
var id = $(this).attr('id');
console.log(id);
$('#date_payement').on('submit', function(event){
event.preventDefault();
if($('#action').val() == 'Enregistrer')
{
var data = new FormData(this);
data.append('paye', paye);
data.append('id_projet', id);
$.ajax({
type: "post",
dataType: "json",
url: 'projets/paiement',
data: data,
processData: false,
contentType: false,
success: function(data) {
var html = '';
if(data.errors)
{
html = '<div class="alert alert-danger">';
for(var count = 0; count < data.errors.length; count++)
{
html += '<p>' + data.errors[count] + '</p>';
}
html += '</div>';
}
if(data.success)
{
html = '<div class="alert alert-success">' + data.success + '</div>';
$('#date_payement')[0].reset();
}
$('#form_result').html(html);
}
});
}
});
});
});
我尝试了以下控制器来做我想做的事:
public function paiement(Request $request)
{
if($request->paye = 1){
$request->validate(['paye'=>'required','id_projet'=>'required','date_paiement'=>'required']);
$projet = Projet::find($request->id_projet);
$datee = $request['date_paiement'];
$time = strtotime($datee);
$date = date('Y-m-d',$time);
if($projet){
$projet->paye = $request->paye;
$projet->date_paiement = $date;
$projet->save();
return response()->json(['success'=>'Paiement efféctué avec succès.']);
}
return response()->json(['failed'=>'Paiement non efféctué.'],422);
}else{
$request->validate(['paye'=>'required','id_projet'=>'required']);
$projet = Projet::find($request->id_projet);
if($projet){
$projet->paye = $request->paye;
$projet->date_paiement = NULL;
$projet->save();
}
}
}
但不起作用。
如何添加此选项:当我将复选框切换为 0 时,将数据库中的列编辑为paye
0 并将date_paiement
列编辑为 NULL?
如果您有任何想法,请帮助
解决方案
推荐阅读
- huggingface-transformers - 如何从 HuggingFace Longformer 中提取文档嵌入
- xpages - Domino 11 和验证码
- android - Android AOP 库
- ios - Tabman 可调整大小的导航栏
- python - 如何将 tkinter 文本小部件的插入光标移动到某个索引
- json - 使用 presto 创建嵌套表?
- rust - 如何迭代 Bevy 查询并保留对迭代值的引用,以便我以后可以使用它?
- azure - 如何在 Microsoft 应用代理中配置范围
- css - 更改 div 类元素 css 的对齐方式
- python-3.x - 具有networkx的节点之间的固定/松散距离