在其中将一些信息输入到表单中,然后将其存储在数据库中(posts.sql)此数据库中表中的所有先前行都显示在此表单下方:
看这里: https://i.stack.imgur.com/EPVOb.png
我想知道如何唯一地标识每行的"删除"和"更新"按钮,因为这些按钮不是数组本身的一部分;而只是在 foreach 循环中生成。
这样
@foreach ($posts as $post)
<tr>
<td>{{{ $post->id }}}</td>
<td>{{{ $post->post_username }}}</td>
<td>{{{ $post->post_title }}}</td>
<td>{{{ $post->post_message }}}</td>
<td><input type="button" onclick="alert('Post Deleted')" value="Delete"></td>
<td><input type="submit" value="Update"></td>
</tr>
@endforeach
然后执行此功能以删除帖子。
function delete_post($id)
{
$sql = "delete from posts where id = ?";
DB::delete($sql, array($id));
}
并使用以下表单显示一个新页面,我可以在其中更新单行。 使用类似于下面的表单。
<form method="post" action="{{{ url('update_post_action') }}}">
<input type="hidden" name="id" value="{{{ $post->id }}}">
<table>
<tr>
<td>Post Message</td>
<td><input type="text" name="post_message"value="{{{ $post->post_message }}}"></td>
</tr>
<tr>
<td colspan=2><input type="submit" value="Update item"></td>
</tr>
</table>
</form>
如果您可以将按钮更改为以下内容:
<button name="delete" value="{{ $post->id }}">Delete</button>
然后你可以使用
if (isset($_POST['delete']))
{
delete_post($_POST['delete']);
}
如果您使用的是 CRUD 路由,则需要一个带有 DELETE 操作的表单才能删除。更新是一个简单的网址,如下所示:
<a href="posts/{!! $post->id !!}/edit">edit</a>
你可以使用 css 像一个按钮一样查看它。
如果您愿意,可以为每一行(和操作)添加一个表单
我给你一个带有javascript提交链接和按钮提交示例的示例以进行删除。
@foreach ($posts as $post)
<tr>
<td>{{{ $post->id }}}</td>
<td>{{{ $post->post_username }}}</td>
<td>{{{ $post->post_title }}}</td>
<td>{{{ $post->post_message }}}</td>
<td>
{!! Form::open(array('method' => 'DELETE', 'route' => array('posts.destroy', $post->id), 'id'=>'post_'.$post->id)) !!}
<a href="javascript:$('#post_{{$item->id}}').submit();">delete link</a>
<input type="submit" value="Delete button">
{!! Form::close() !!}</td>
<td><input type="submit" value="Update"></td>
</tr>
@endforeach
Hihi 我能够通过向表中的表单添加一个操作,然后将提交按钮的值作为 routes .php 文件中的变量来做到这一点。
首页.刀锋.php
<td> <!-- Creates a New #Swaggy Button that links to routes to delete item -->
<form method="post" action="{{{ url('delete_post_action') }}}">
<input type="hidden" name="delete_id" value="{{{ $post->id }}}">
<input type="submit" class="btn btn-danger" value="Delete">
</form>
</td>
路线.php
Route::post('delete_post_action', function()
{ /* Get post->id from hidden input then delete row */
$id = Input::get('delete_id');
$sql = "delete from posts where id = ?";
DB::delete($sql, array($id));
/* Rebuild webpage */
$sql = "select * from posts ORDER BY ID DESC";
$current_posts = DB::select($sql);
$results=$current_posts;
return View::make('pages.home')->withposts($results);
});