后端是thinkphp,前端通过jquery ajax传递一组数据过去存储;
传出去的数据结构:
{
stop_id:1,
num:3,//不固定,实际下边也是根据这个新建的input组,然后再传出来的
AAA1:A1,
BBB1:B1,
CCC1:C1,
AAA2:A2,
BBB2:B2,
CCC2:C2,
AAA3:A3,
BBB3:B3,
CCC3:C3
}
mysql数据表:
id,stop_id,AAA,BBB,CCC
后端代码:
if (request()->isAjax()) {
$result = '';
//第一个坑,必须在for循环外部先定义,再在内部赋值,否则内部的$result会被销毁而无法被调用
$num = input('post.num');
//第二个坑,ajax内部的变量必须在内部赋值
$stop_id = input('post.stop_id ');
for ($i=1; $i<=$num; $i++) {
$AAA = input('post.AAA'.$i);
$BBB= input('post.AAA'.$i);
$CCC= input('post.AAA'.$i);
$data=[
'stop_id' = stop_id ,
'AAA' = $AAA,
'BBB' = $BBB,
'CCC' = $CCC
];
if($i == $num){
$result = model(xxxx)->add($data);//最后一次执行时新建数据后赋值$result
usleep(1000000);//第三个坑,延迟单位是微秒
break;//不算坑,直接跳出,防止意外
}
model(xxxx)->add($data);//这里直接新建数据,但不赋值$result
unset($data);//第四个坑,清空数组,防止下一个循环无法覆盖数据
}
if ($result == 1) {
$this->success('successs');
} else {
$this->error($result);
}
}
如果有小白朋友看到了,可以参考一下,
作为一个小白菜,这里坑了一下午才解决。