使用刀片在Laravel中的X-Eddible表格



我是Web编程主题的新手。我正在使用Laravel和Blade进行视图进行一个项目,并且我想为我的一个数据库创建一个X-Editable表,因此用户无需输入其他视图即可编辑数据。

无论如何,我有很多裤子。

我在mySQL中有此数据库:

mySQL数据库

路由我正在文件路由中的Web.php文件中进行此操作

Route::resource('/test','PruebaController');
Route::get('/test', 'PruebaController@index')->name('test');
Route::post('test/updatetest','PruebaController@updatetest')->name('updatetest');

控制器

public function index(Request $request)
{
    if ($request){
        $test=DB::table('pruebas')
        ->orderBy('nombre','asc')
        ->get();
        $test_model = new Prueba();
        $fillable_columns = $test_model->getFillable();
        foreach ($fillable_columns as $key => $value) 
        {
            $test_columns[$value] = $value;
        }
        return view('test.index')
        ->with('test', $test)
        ->with('test_columns', $test_columns);
    }
}
public function updatetest(Request $request, $id)
{
    try 
    {
        $id =$request->input('pk');
        $field = $request->input('name');
        $value =$request->input('value');

        $test = Prueba::findOrFail($id);
        $test->{$field} = $value;
        $test->save();
    }
    catch (Exception $e)
    {
        return response($e->intl_get_error_message(), 400);
    }
    return response('',200);
}

查看

@extends ('layouts.admin')
@section ('contenido')

<div class="panel-heading">
    <h4>
        Listado de nombres
    </h4>
    @if (count($errors)>0)
        <div class="alert alert-danger">
            <ul>
                @foreach ($errors->all() as $error)
                    <li>{{$error}}</li>
                @endforeach
            </ul>
        </div>
    @endif
</div>
<div class="panel-body">
    <form action="{{route('updatetest')}}" method="post">
    {{csrf_field()}}
        <table class="table table-hover nowrap" id="example" width="100%">
            <thead class="thead-default">
                <tr>
                    <th>ID</th>
                    <th>Nombre</th>
                    <th>Cédula</th>
                    <th>Edad</th>
                </tr>
            </thead>
            @foreach ($test as $t)
            <tbody>
                <tr>
                    <td>{{$t->id}}</td>
                    <td>
                        <a 
                        href="#" 
                        class="nombre" 
                        data-type="text"
                        data-pk="{{$t->id}}"
                        data-value="{{$t->nombre}}" 
                        data-title="Cambie el nombre"
                        data-url="{{route('updatetest') }}">
                            {{$t->nombre}}
                        </a>
                    </td>
                    <td>
                        <a 
                        href="#" 
                        class="cedula" 
                        data-type="number"
                        data-pk="{{$t->id}}"
                        data-value="{{$t->cedula}}" 
                        data-title="Cambie la cedula"
                        data-url="{{route('updatetest') }}">
                            {{$t->cedula}}
                        </a>
                    </td>
                    <td>
                        <a 
                        href="#" 
                        class="edad" 
                        data-type="number"
                        data-pk="{{$t->id}}"
                        data-value="{{$t->edad}}" 
                        data-title="Cambie la edad"
                        data-url="{{route('updatetest') }}">
                            {{$t->edad}}
                        </a>
                    </td>                   
                </tr>    
            </tbody>
            @endforeach
        </table>
    </form>
</div>
@endsection

ajax脚本

<script type="text/javascript">
$(document).ready(function() {
  //toggle `popup` / `inline` mode
  $.fn.editable.defaults.mode = 'inline';
  $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    id = $(this).data('pk');
    url = $(this).data('url');
    //make username editable
    $('.nombre').editable({
      url: url,
      pk: id,
      type:"text",
      validate:function(value){
        if($.trim(value) === '')
        {
          return 'This field is required';
        }
      }
    });

    $('.cedula').editable({
      url: url,
      pk: id,
      type:"number",
      validate:function(value){
        if($.trim(value) === '')
        {
          return 'This field is required';
        }
      }
    });
    $('.edad').editable({
      url: url,
      pk: id,
      type:"number",
      validate:function(value){
        if($.trim(value) === '')
        {
          return 'This field is required';
        }
      }
    });
});
</script>

问题是,当我单击字段时,X编辑不起作用。知道为什么这是吗?

我真的很感谢您的帮助。

更改

<form action="{{route('test/updatetest')}}" method="post">

to

<form action="{{route('updatetest')}}" method="post">

路由函数为给定名称路由生成一个URL:

$ url =路由('rutename'(;

您可以在此处阅读更多有关它的信息

相关内容

  • 没有找到相关文章

最新更新