我有一个像这样的代码:
表格页面(phonebook.blade.php):
....... some css here and stuff .......
<body>
<h1>Contact Form</h1><br/>
{{-- FORM --}}
<form method = "POST" action = "contacts">
{{ csrf_field() }}
<div class = "form-group">
<label for = "name">Name</label><br/>
<input type = "text" id = "name" class = "form-control" name = "name" placeholder = "Name your Name" value = "{!! old('name') !!}">
</div><br/>
<div class = "form-group">
<label for = "lastname">Lastname</label><br/>
<input type = "text" id = "lastname" class = "form-control" name = "lastname" placeholder = "Name your Lastname" value = "{!! old('lastname') !!}">
</div><br/>
<div class = "form-group
@if($errors->has('email'))
has-error
@endif">
<label for = "email">E-mail</label><br/>
<input type = "text" id = "email" class = "form-control" name = "email" placeholder = "somesomething@email.com" >
@if($errors->has('email'))
<p class = "help-block">{{ $errors->first('email') }}</p>
@endif
</div><br/>
<div class = "form-group
@if($errors->has('phone'))
has-error
@endif">
<label for = "phone">Phone Number</label><br/>
<input type = "text" id = "phone" class = "form-control" name = "phone" placeholder = "I'll call you">
@if($errors->has('phone'))
<p class="help-block">{{ $errors->first('phone') }}</p>
@endif
</div><br/>
<div class = "form-group">
<label for = "address">Address</label><br/>
<input type = "text" id = "address" class = "form-control" name = "address" placeholder = "I'll even visit you" value = "{!! old('address') !!}">
</div><br/>
<button type = "submit" class = "submit">Submit Information</button>
<a href="contacts"><button type = "button">View Contacts</button></a>
</form>
</body>
</html>
当我点击“Submit Information
”按钮时,联系人会存储在“通讯录”表格中,我会被重定向到“contacts.blade.php
”页面。
当我点击“View contacts
”按钮时,我也会被重定向到“contacts.blade.php
”。
这是“contacts.blade.php
”
....... some css and scripts here .......
<body>
<h1>Contacts</h1>
<br/>
<a href = "phonebook"><button class = "ret" type = "button">Add New Entry</button></a>
<br/><br/>
<table class = "contacts">
<thead>
<tr>
<th> ID </th>
<th> Name </th>
<th> Lastname </th>
<th> E-Mail </th>
<th> Phone </th>
<th> Address </th>
<th> Edit </th>
<th> Delete </th>
</tr>
</thead>
<tbody>
@foreach($contact as $contact)
<tr class = "tableBody">
<td class = "id"> {{ $contact->id }} </td>
<td class = "name"> {{ $contact->name }} </td>
<td class = "lastname"> {{ $contact->lastname }} </td>
<td class = "email"> {{ $contact->email }} </td>
<td class = "phone"> {{ $contact->phone }} </td>
<td class = "address"> {{ $contact->address }} </td>
<td class = "edit"> <button class = "btnedit" onclick = "editContact()">Edit</button> </td>
<td class = "delete"> <button class = "btndelete" onclick = "deleteContact()">Delete</button> </td>
</tr>
@endforeach
</tbody>
</table>
<br/>
<a href = "phonebook"><button class = "ret" type = "button">Add New Entry</button></a>
</body>
</html>
请注意,我已经有一个按钮来编辑和删除我的联系人,以及功能名称editContact()
和deleteContact()
。
我需要什么:
当我点击“编辑”时,我希望被重定向到使用与FORM PAGE相同结构的页面,输入字段填充了我点击EDIT按钮的特定行的信息。 编辑完条目后,我点击“提交信息”按钮,我刚刚编辑的内容替换旧内容,代替创建新条目< / strong>在表中。 编辑:我更喜欢使用Javascript来执行此操作,因此没有关于JS出现的答案的问题。
删除按钮: 当我点击“删除”按钮时,我希望从我的表中删除联系人,然后下一个条目上升一行,取代旧的东西。 编辑:我也更喜欢在这个按钮上使用JS。
实施例: 我在第四排有联系人。 我删除了这个联系人。 表中的第五个条目上升了一个位置 所以,它成为表中的第四个条目。 此外,第六个进入一个位置,成为第五个条目。 等等。
我已经有了逻辑,但我缺乏使这些功能起作用的命令。 另外,我是PHP和Laravel的新手。
答案 0 :(得分:3)
onclick
属性将尝试使用javascript,因此如果您尝试使用PHP,那么您真的不想这样做。
它应该是一个链接(如果你希望它看起来像一个按钮,就像一个按钮一样风格化),它指向你设置编辑联系人的任何路径。该路由将获取联系人的ID,然后显示一个表单,其中所有字段都预先填充了该联系人ID的信息。
然后,表格将指向另一条路线,该路线将获取ID和联系信息,并使用编辑表格中输入的所有信息更新数据库中的记录。
同样适用于删除按钮,它只需要是指向使用联系人ID设置删除联系人的路由的链接。然后它可能会重定向回到同一页面或者你想要它去的地方。
我查看资源控制器,它可能会让你的生活变得更轻松,因为它基本上为你设置了控制器,它具有CRUD操作和路由所需的所有方法。您只需要遍历控制器中生成的每个方法,并按照您认为合适的方式实现它们。
https://laravel.com/docs/5.4/controllers#resource-controllers
答案 1 :(得分:1)
您需要做的是创建一个新页面,该页面将使用您的数据库通过传递ID来填写字段。
您需要一个简单的SELECT
命令来获取行,具体取决于您正在编辑的ID:SELECT FROM table WHERE ID=yourid
。然后,通过提交,您将不会使用INSERT INTO table VALUES
,您将使用UPDATE table SET NAME=new_name WHERE ID=yourid
因此,在删除页面上,传递ID并使用DELETE FROM table WHERE ID=yourid
如果您不知道如何通过网页传递ID,则可通过POST
和GET