我有一个简单的表单,其中包含一个按钮,用于以弹出模式打开另一个表单,该表单看起来像这样
现在您可以在上面的前提条件下输入加号按钮,当用户单击加号按钮时,它会打开包含以下形式的模态。
现在我要按照以下顺序提交表单
First submit: base form (norma way)
Second submit: form inside a pop up (via ajax)
这是我的存储功能,用于在页面控制器中提交表单
public function store(Request $request)
{
$page = Page::create([
'title' => $request->get('title'),'articles' => $request->get('articles'),'status' => $request->get('status'),]);
// dd($request);
$page->save();
$bidder = Bidder::create('page_id' -> $page->id);
// save bidders informtion to the database using ajax
if($request->ajax())
{
$rules = array(
'params_name.*' => 'required','params_value.*' => 'required','bidders_name.*' => 'required',);
$error = Validator::make($request->all(),$rules);
if($error->fails())
{
return response()->json([
'error' => $error->errors()->all()
]);
}
$params_name = $request->params_name;
$params_value =$request->params_value;
$bidders_name =$request->bidders_name;
for($count = 0; $count < count($params_name); $count++)
{
$data = array(
'params_name' => $params_name[$count],'params_value' => $params_value[$count],'bidders_name' => $bidders_name[$count],);
$insert_data[] = $data;
}
bidder_parameters::insert($insert_data);
return response()->json([
'success' => 'Data Added successfully.'
]);
}
return redirect("/pages")->with("sucess","data saved");
}
这是在弹出窗口中提交表单的Ajax
$("#paramsForms").on('submit',function(e) {
e.preventDefault();
$.ajax({
url: '/pages',type: "POST",data: $(this).serialize(),dataType: 'json',beforeSend:function() {
$("#save").attr('disabled','disabled');
},success:function (data) {
console.log(data);
alert('Data successfull saved');
},error:function (error) {
console.log(error)
console.log('Data not saved');
}
})
})
现在,当我单击“提交”时,出现以下错误
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'title' cannot be null (SQL: insert into `pages` (`title`,`articles`,`status`,`updated_at`,`created_at`) values (?,?,2019-11-06 11:29:31,2019-11-06 11:29:31))"
注意:在存储函数中检查dd($ request)是否存在两种形式,我得到以下
+request: ParameterBag {#44
#parameters: array:4 [
"_token" => "Wgozk9jnyUnJkL35vPhso9sUr7lbMD8cSgMVuN2s"
"bidders_name" => array:1 [
0 => "Biden"
]
"params_name" => array:1 [
0 => "democratic"
]
"params_value" => array:1 [
0 => "10"
]
]
}
注意:问题是,当我单击“弹出模式”上的“提交”时,它会尝试首先发送基本表单
我需要更改以获得我想要的东西吗?