【发布时间】:2021-05-01 07:46:34
【问题描述】:
我正在尝试通过表单更新餐厅菜单。首先,我获取菜单类别的所有内容,并通过 foreach 将它们放入输入值中,这样它们都是可编辑的,并且可以预先设置好进行编辑。
现在最大的问题是每当我完全尝试编辑表单时,它只会编辑最后一行,因为那是最后收到的,因此忽略了其余的。我如何让表单从 foreach 提交所有请求的项目?
为每个项目制作一个表单将是一个很大的禁忌,因为这样每一行都会有一个按钮,这会阻碍生产力
刀片视图:
<form action="test" method="head">
@foreach ($Voorgerecht as $item)
@csrf
<tr>
<td>
<input type="text" name="id" value="{{$item->id}}">
</td>
<td>
<input type="text" name="name" value="{{$item->product_name}}">
</td>
<td>
<input type="text" name="price" value="{{$item->product_price}}">
</td>
<td>
<input type="submit" value="edit">
</td>
@endforeach
</tr>
</form>
控制器:
public function editsubmit(Request $req) {
update::where('id',$req->id)
->update(['product_name'=>$req->name]);
return redirect('/admin');
}
【问题讨论】:
-
名称是唯一的,所以如果有多个输入使用相同的名称,那么它只会传入最后一个。您需要使用 CBroe 链接中的数组名称
-
您还需要将结束行标记
</tr>移动到foreach内以避免创建无效标记(如果您在循环中打开一行,您也需要在此处关闭它)。 -
我移动了
但问题是我现在将它们放在数组中,但它仍然将它们放在以 WHERE id = 1 结尾的 sql 中,从而将所有数组放在一个中
标签: javascript php html arrays laravel