无法删除我想要的记录,只能删除第一条
No able to delete the record I want, only the first one
我正在尝试删除一条记录。一切似乎都很好,但是我无法删除我想要的记录,只能删除第一个。
视图的代码是:
<table class="table">
<thead class="thead-light">
<tr>
<th>ID</th>
<th>Inscrito en</th>
<th>Cambios</th>
</tr>
</thead>
<tbody>
@if (!empty($escuelausuarios))
@foreach($escuelausuarios as $escuelausuario)
<tr>
<td> {{ $escuelausuario->idEscuelaUsuario }} </td>
<td> {{ $escuelausuario->escuela->strNombreEscuela }} </td>
<td>
<button class="btn btn-sm btn-outline-secondary" id="delete{{ $escuelausuario->idEscuelaUsuario }}"
onclick="
var resultdelete = confirm ('¿Estas seguro de que deseas eliminar al usuario en ésta escuela?');
if (resultdelete)
{
event.preventDefault();
document.getElementById('delete-horario-form').submit();
}
"
>-</button>
<form id="delete-horario-form" action="{{ route('escuelausuarios.destroy',[$escuelausuario->idEscuelaUsuario]) }}"
method="POST" style="display: none;">
<input type="hidden" name="_method" value="delete">
{{ csrf_field() }}
</form>
</td>
</tr>
@endforeach
@endif
</tbody>
</table>
控制器总是得到相同的Id,所以,我删除的记录总是相同的,第一条。
public function destroy($idEscuelaUsuario)
{
//
dd($idEscuelaUsuario);
$escuelaUsuario = EscuelaUsuario::find($idEscuelaUsuario);
//dd($escuelaUsuario);
if($escuelaUsuario->delete())
{
return back()->withInput()->with('success','Escuela desvinculada del usuario exitosamente');
//return redirect()->route('usuarios.index')->with('success','Escuela desvinculada del usuario exitosamente');
}
return back()->withInput()->with('error','La escuela no pudo desvuncularse');
}
在另一个 post 中,我有一个类似的问题,但它是一个编辑视图,问题是值从未到达模态 window,所以我更改了每个的 ID 名称行,一切正常。在这种情况下,我只需要发送行的 ID,但它总是相同的,即查询的第一个。
请帮忙,我不知道发生了什么。
提前致谢。
如果您在 foreach 循环中使用 ID 属性,请确保每行具有不同的 ID
如果您使用 document.getElementByID
它将始终搜索第一次出现的 ID
<button class="btn btn-sm btn-outline-secondary" id="delete{{ $escuelausuario->idEscuelaUsuario }}" onclick="
var resultdelete = confirm ('¿Estas seguro de que deseas eliminar al usuario en ésta escuela?');
if (resultdelete)
{
event.preventDefault();
document.getElementById('delete-horario-form{{ $escuelausuario->idEscuelaUsuario }}').submit();
}
">-</button>
<form id="delete-horario-form{{ $escuelausuario->idEscuelaUsuario }}" action="{{ route('escuelausuarios.destroy',[$escuelausuario->idEscuelaUsuario]) }}" method="POST" style="display: none;">
<input type="hidden" name="_method" value="delete">
{{ csrf_field() }}
</form>
问题:
所有隐藏的表单都具有相同的 ID ("delete-horario-form"
)。单击删除按钮时,它将提交 ID 为 "delete-horario-form"
的表单。但是在你的代码中所有的 id 都是相同的,所以它只会提交第一个。
解法:
您已将按钮 ID 设为动态 id="delete{{ $escuelausuario->idEscuelaUsuario }}"
,这不是必需的。按钮 id 在这里没有任何区别,但表单 id 有区别。通过使表单 id 像按钮一样动态,它将解决您的问题。
<table class="table">
<thead class="thead-light">
<tr>
<th>ID</th>
<th>Inscrito en</th>
<th>Cambios</th>
</tr>
</thead>
<tbody>
@if (!empty($escuelausuarios))
@foreach($escuelausuarios as $escuelausuario)
<tr>
<td> {{ $escuelausuario->idEscuelaUsuario }} </td>
<td> {{ $escuelausuario->escuela->strNombreEscuela }} </td>
<td>
<button class="btn btn-sm btn-outline-secondary"
onclick="var resultdelete = confirm ('¿Estas seguro de que deseas eliminar al usuario en ésta escuela?');
if (resultdelete)
{
event.preventDefault();
document.getElementById("delete{{ $escuelausuario->idEscuelaUsuario }}").submit();
}"
>-</button>
<form id="delete{{ $escuelausuario->idEscuelaUsuario }}" action="{{ route('escuelausuarios.destroy',[$escuelausuario->idEscuelaUsuario]) }}"
method="POST" style="display: none;">
<input type="hidden" name="_method" value="delete">
{{ csrf_field() }}
</form>
</td>
</tr>
@endforeach
@endif
</tbody>
</table>
我正在尝试删除一条记录。一切似乎都很好,但是我无法删除我想要的记录,只能删除第一个。
视图的代码是:
<table class="table">
<thead class="thead-light">
<tr>
<th>ID</th>
<th>Inscrito en</th>
<th>Cambios</th>
</tr>
</thead>
<tbody>
@if (!empty($escuelausuarios))
@foreach($escuelausuarios as $escuelausuario)
<tr>
<td> {{ $escuelausuario->idEscuelaUsuario }} </td>
<td> {{ $escuelausuario->escuela->strNombreEscuela }} </td>
<td>
<button class="btn btn-sm btn-outline-secondary" id="delete{{ $escuelausuario->idEscuelaUsuario }}"
onclick="
var resultdelete = confirm ('¿Estas seguro de que deseas eliminar al usuario en ésta escuela?');
if (resultdelete)
{
event.preventDefault();
document.getElementById('delete-horario-form').submit();
}
"
>-</button>
<form id="delete-horario-form" action="{{ route('escuelausuarios.destroy',[$escuelausuario->idEscuelaUsuario]) }}"
method="POST" style="display: none;">
<input type="hidden" name="_method" value="delete">
{{ csrf_field() }}
</form>
</td>
</tr>
@endforeach
@endif
</tbody>
</table>
控制器总是得到相同的Id,所以,我删除的记录总是相同的,第一条。
public function destroy($idEscuelaUsuario)
{
//
dd($idEscuelaUsuario);
$escuelaUsuario = EscuelaUsuario::find($idEscuelaUsuario);
//dd($escuelaUsuario);
if($escuelaUsuario->delete())
{
return back()->withInput()->with('success','Escuela desvinculada del usuario exitosamente');
//return redirect()->route('usuarios.index')->with('success','Escuela desvinculada del usuario exitosamente');
}
return back()->withInput()->with('error','La escuela no pudo desvuncularse');
}
在另一个 post 中,我有一个类似的问题,但它是一个编辑视图,问题是值从未到达模态 window,所以我更改了每个的 ID 名称行,一切正常。在这种情况下,我只需要发送行的 ID,但它总是相同的,即查询的第一个。
请帮忙,我不知道发生了什么。
提前致谢。
如果您在 foreach 循环中使用 ID 属性,请确保每行具有不同的 ID
如果您使用 document.getElementByID
它将始终搜索第一次出现的 ID
<button class="btn btn-sm btn-outline-secondary" id="delete{{ $escuelausuario->idEscuelaUsuario }}" onclick="
var resultdelete = confirm ('¿Estas seguro de que deseas eliminar al usuario en ésta escuela?');
if (resultdelete)
{
event.preventDefault();
document.getElementById('delete-horario-form{{ $escuelausuario->idEscuelaUsuario }}').submit();
}
">-</button>
<form id="delete-horario-form{{ $escuelausuario->idEscuelaUsuario }}" action="{{ route('escuelausuarios.destroy',[$escuelausuario->idEscuelaUsuario]) }}" method="POST" style="display: none;">
<input type="hidden" name="_method" value="delete">
{{ csrf_field() }}
</form>
问题:
所有隐藏的表单都具有相同的 ID ("delete-horario-form"
)。单击删除按钮时,它将提交 ID 为 "delete-horario-form"
的表单。但是在你的代码中所有的 id 都是相同的,所以它只会提交第一个。
解法:
您已将按钮 ID 设为动态 id="delete{{ $escuelausuario->idEscuelaUsuario }}"
,这不是必需的。按钮 id 在这里没有任何区别,但表单 id 有区别。通过使表单 id 像按钮一样动态,它将解决您的问题。
<table class="table">
<thead class="thead-light">
<tr>
<th>ID</th>
<th>Inscrito en</th>
<th>Cambios</th>
</tr>
</thead>
<tbody>
@if (!empty($escuelausuarios))
@foreach($escuelausuarios as $escuelausuario)
<tr>
<td> {{ $escuelausuario->idEscuelaUsuario }} </td>
<td> {{ $escuelausuario->escuela->strNombreEscuela }} </td>
<td>
<button class="btn btn-sm btn-outline-secondary"
onclick="var resultdelete = confirm ('¿Estas seguro de que deseas eliminar al usuario en ésta escuela?');
if (resultdelete)
{
event.preventDefault();
document.getElementById("delete{{ $escuelausuario->idEscuelaUsuario }}").submit();
}"
>-</button>
<form id="delete{{ $escuelausuario->idEscuelaUsuario }}" action="{{ route('escuelausuarios.destroy',[$escuelausuario->idEscuelaUsuario]) }}"
method="POST" style="display: none;">
<input type="hidden" name="_method" value="delete">
{{ csrf_field() }}
</form>
</td>
</tr>
@endforeach
@endif
</tbody>
</table>