Forms 更新类别
我非常接近一个解决方案,但我被卡住了。我有一个类别页面,其中类别在同一页面上创建和删除。我添加了一个编辑功能,编辑链接,用户可以在同一页面上编辑类别,而不是创建另一个静态页面并重复相同的代码 这是我的控制器更新功能Forms 更新类别,forms,laravel,Forms,Laravel,我非常接近一个解决方案,但我被卡住了。我有一个类别页面,其中类别在同一页面上创建和删除。我添加了一个编辑功能,编辑链接,用户可以在同一页面上编辑类别,而不是创建另一个静态页面并重复相同的代码 这是我的控制器更新功能 public function postEdit() { $category = Category::find(Input::get('id')); if ($category) { $category->update(); r
public function postEdit() {
$category = Category::find(Input::get('id'));
if ($category) {
$category->update();
return Redirect::to('admin/categories/index')
->with('message', 'Category Updated');
}
return Redirect::to('admin/categories/index')
->with('message', 'Something went wrong, please try again');
}
这是一个类别页面,用户可以在其中查看、创建、编辑和删除列出的类别。我正在尝试创建一个条件,该条件声明显示“创建表单”为默认值,并且仅在单击“编辑”按钮时显示“编辑表单”
@extends('layouts.main')
@section('content')
<div id="admin">
<h1>Categories Admin Panel</h1><hr>
<p>Here you can view, delete, create, and edit new categories.</p>
<h2>Categories</h2><hr>
<ul>
@foreach($categories as $category)
<li>
{{ $category->name }} -
{{ Form::open(array('url'=>'admin/categories/destroy', 'class'=>'form-inline')) }}
{{ Form::hidden('id', $category->id) }}
{{ Form::submit('delete') }}
{{ Form::close() }}
{{ Form::open(array('url'=>'admin/categories/edit', 'class'=>'form-inline'))}}
{{ Form::hidden('id', $category->id) }}
{{ Form::submit('edit') }}
{{ Form::close() }}
</li>
@endforeach
</ul>
<h2>Create New Category</h2><hr>
@if($errors->has())
<div id="form-errors">
<p>The following errors have occurred:</p>
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div><!-- end form-errors -->
@endif
<php
if(isset(url=>'admin/categories/destroy')) {
{{ Form::open(array('url'=>'admin/categories/create')) }}
<p>
{{ Form::label('name') }}
{{ Form::text('name') }}
</p>
{{ Form::submit('Create Category', array('class'=>'secondary-cart-btn')) }}
{{ Form::close() }}
}else{
{{ Form::open(array('url'=>'admin/categories/edit')) }}
<p>
{{ Form::label('name') }}
{{ Form::text('name') }}
</p>
{{ Form::submit('Create Category', array('class'=>'secondary-cart-btn')) }}
{{ Form::close() }}
}
?>
</div><!-- end admin -->
@stop
Javascript
<script>
function showEditForm(id) {
id.innerHTML="
{{ Form::open(array('url'=>'admin/categories/edit')) }}
<p>
{{ Form::hidden('id', $category->id) }}
{{ Form::label('name') }}
{{ Form::text('name') }}
</p>
{{ Form::submit('Edit Category', array('class'=>'secondary-cart-btn')) }}
{{ Form::close() }}
";
}
</script>
函数showEditForm(id){
id.innerHTML=”
{{Form::open(数组('url'=>'admin/categories/edit'))}
{{Form::hidden('id',$category->id)}
{{Form::label('name')}
{{Form::text('name')}
{{Form::submit('Edit Category',array('class'=>'secondary-cart-btn'))}
{{Form::close()}}
";
}
事实上,你的问题很好,由于你的咆哮,我给了-1分。尽管如此,这个问题确实值得回答
让我们总结一下你的问题。你有三个主要任务
- 创造
- 编辑
- 删除
$(function(){
$(document).on('submit','#writeCategory', function(e){
var f = $(this);
e.preventDefault();
var d = f.serialize();
$.ajax({
type : POST,
url : //your url,
data : d
}).done(function(data){
alert('submitted');
//you can also prepend/append the submitted data after successful submission
}).fail(function(x,h,r){
alert('error occured')
});
});
});
用于编辑: 对于编辑,可以使用。该页面包含站点中的所有演示、文档
用于删除: 我要提到一种非常简单的方法。使用
数据-
属性。如果要删除类别,可能只需要id
假设您正在循环以显示所有类别。执行此操作时,将id存储在一个属性中,例如,数据id
。并为每个类别编写一个删除链接
e、 g.单个类别实体的删除链接可能如下所示:
休息很容易。只需使用ajax并删除链接。e、 g
$(function(){
$('.delete').click(function(e){
e.preventDefault();
var a = $(this);
var answer = confirm('Are you sure you want to delete this?');
if (answer)
{
$.ajax({
type : 'post',
url : //your url,
data : {id:a.attr('data-id')}
}).done(function(data){
alert('deleted');
}).fail(function(x,h,r){
alert('error occured');
});
}
});
});
您也可以修改它。e、 g.删除后,如果以表格方式显示类别,可以向上滑动该行(其中包含指定类别信息),暗示该类别已被删除
加成
查看:
有很多javascript模型窗口插件。只需选择一个,然后通过ajax显示详细信息
所有4项任务,在一个地方完成
注意,这里我使用jQuery只是为了方便。如果你想要纯javascript,你也可以这样写 创建一个编辑按钮,并在其上附加一个带有JavaScript的
onclick
事件处理程序,事件处理程序应该显示编辑表单。这是一个好主意,但由于JavaScript可以在所有浏览器上被禁用且不处于活动状态,因此有一种方法可以使用php和laravel来实现。在URL中传递一个参数,在您的视图中,检查该参数是否存在。如果是,则显示编辑表单,否则不显示。当用户第一次加载页面时,您可以有一个基本上指向同一页面的链接,但在href
属性中将参数附加为查询字符串。然后,他们会点击它来显示编辑表单。顺便说一句,如果你是主持人并关闭我的问题,我会屏蔽我的IP地址,在网络中抛出一百万个IP地址,然后用临时电子邮件一次又一次地注册。
-1对此,我通过查看此项基本上理解了参数,在我的情况下,参数是什么?对不起,我现在很累。谢谢你的回答。我决定只获取类别id作为产品id并传递变量。
$(function(){
$('.delete').click(function(e){
e.preventDefault();
var a = $(this);
var answer = confirm('Are you sure you want to delete this?');
if (answer)
{
$.ajax({
type : 'post',
url : //your url,
data : {id:a.attr('data-id')}
}).done(function(data){
alert('deleted');
}).fail(function(x,h,r){
alert('error occured');
});
}
});
});