Laravel - Jeditable Plugin en laravel

 
Vista:
sin imagen de perfil
Val: 8
Ha disminuido 1 puesto en Laravel (en relación al último mes)
Gráfica de Laravel

Jeditable Plugin en laravel

Publicado por Jose Angarita (6 intervenciones) el 29/10/2017 18:56:52
Hola comunidad, espero que estén bien, soy nuevo aquí y vine en su ayuda, estoy usando un jquery lugin llamado Jeditable https://appelsiini.net/projects/jeditable/ Quería saber si alguien aquí tiene experiencia en este pluging y tengo unas horas, tratando de resolver un problema y lo que estoy buscando es una orientación.

Resulta que estoy enviando un archivo de Excel a una tabla editable en línea, la idea es que al cargar el archivo de Excel, puede modificar los datos en la tabla en función de algunas reglas, después de revisar las reglas si todo está bien, entonces, puede guardar en la base de datos.

Escribo un poco del código que tengo para que pueda hacerse una idea:

This is my view:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<div class="container-fluid">
        <div class="row">
            <div class="col">
                <div class="panel panel-default">
                    <div class="panel-heading"><h4>Registro de encargos</h4></div>
                    <div class="panel-body">
                        @include('mensajes.validation')
                        {!! Form::open(['id'=>'formularioajax','method'=>'POST','class'=>'','enctype'=>'multipart/form-data']) !!}
                        @include('encargos.subirfichero.partials.fields')
                        {!! Form::submit('Procesar Fichero',['id'=>'procesar_fichero','class'=>'btn btn-primary']) !!}
                        {!! Form::close() !!}
                        <br>
                        @include('mensajes.progressbar')
                        <br>
 
                        <div id="datatable"></div>
                    </div>
                    <br>
 
                </div>
 
            </div>
 
        </div>
    </div>

This is my Js archive,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$(document).ready(function(){
 
    var oTable = $('#example').DataTable({
            "paging":   true,
            "ordering": true,
            "info":     true,
            "searching": true,
            "language": {
                "search": "Buscar",
                "lengthMenu": "Ver _MENU_ registros por pagina",
                "zeroRecords": "Registro no encontrado - Intente de nuevo",
                "info": "Cantidad de paginas _PAGE_ de _PAGES_",
                "infoEmpty": "No existe registros disponibles",
                "infoFiltered": "(Filtrar desde _MAX_ registros en total)",
                "paginate": {
                    "first": "Primera",
                    "last": "Ultima",
                    "next": "Siguiente",
                    "previous": "Anterior"
                }
            }
 
    } );
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    /* Apply the jEditable handlers to the table */
 
    $('.edit').editable('editable',{
 
        callback : function(value, settings) {
           console.log(this);
           console.log(value);
           console.log(settings);
 
        }
 
    });
 
});

This is my route archive

1
2
3
Route::group(['prefix'=>'encargos','namespace'=>'\Encargos'],function(){
    Route::post('editable','EncargoController@editable');
  });

This is my controller:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
public function editable(Request $request)
    {
        $nombre = $request->id;
        switch ($nombre) {
            case "albaran":
                $data = $request->all();
                $rules = array(
                    'value' => 'required|max:10|string'
                );
                $messages = array(
                    'value.required' => 'El campo no puede ser blanco',
                    'value.max' => 'El valor maximo es 10 caracteres',
                    'value.string' => 'El valor debe ser caracteres'
                );
                $v = Validator::make($data, $rules, $messages);
                if ($v->fails()) {
                    return response()->json([
                        'errores' => $v->errors(),
                        'valores' => $request->value
                    ]);
                } else {
                    return $request->value;
                }
                break;
 
 
            case "destinatario":
                $data = $request->all();
                $rules = array(
                    'value' => 'required|max:28|string'
                );
                $messages = array(
                    'value.required' => 'El campo no puede ser blanco',
                    'value.max' => 'El valor maximo es 28 caracteres',
                    'value.string' => 'El valor debe ser caracteres'
                );
                $v = Validator::make($data, $rules, $messages);
                if ($v->fails()) {
                    $bandera = 0;
                    return response()->json([
                        'error' => $v->errors()
 
                    ]);
                } else {
                    return $request->value;
                }
                break;
 
            case "direccion":
                $data = $request->all();
                $rules = array(
                    'value' => 'required|max:250|string'
                );
                $messages = array(
                    'value.required' => 'El campo no puede ser blanco',
                    'value.max' => 'El valor maximo es 250 caracteres',
                    'value.string' => 'El valor debe ser caracteres'
                );
                $v = Validator::make($data, $rules, $messages);
                if ($v->fails()) {
                    return response()->json([
                        'error' => $v->errors()
                    ]);
                } else {
                    return $request->value;
                }
                break;
 
            case "poblacion":
                $data = $request->all();
                $rules = array(
                    'value' => 'max:10|string'
                );
                $messages = array(
                    'value.max' => 'El valor maximo es 10 caracteres',
                    'value.string' => 'El valor debe ser caracteres'
                );
                $v = Validator::make($data, $rules, $messages);
                if ($v->fails()) {
                    return response()->json([
                        'error' => $v->errors()
                    ]);
                } else {
                    return $request->value;
                }
                break;
 
            case "cp":
                $data = $request->all();
                $rules = array(
                    'value' => 'required|max:5|min:5|string'
                );
                $messages = array(
                    'value.required' => 'El campo no puede ser blanco',
                    'value.max' => 'El valor maximo es 5 caracteres',
                    'value.min' => 'Debe colocar minimo 5 caracteres',
                    'value.string' => 'El valor debe ser caracteres'
                );
                $v = Validator::make($data, $rules, $messages);
                if ($v->fails()) {
                    return response()->json([
                        'error' => $v->errors()
                    ]);
                } else {
                    return $request->value;
                }
                break;
 
            case "provincia":
                $data = $request->all();
                $rules = array(
                    'value' => 'required|max:20|string'
                );
                $messages = array(
                    'value.required' => 'El campo no puede ser blanco',
                    'value.max' => 'El valor maximo es 20 caracteres',
                    'value.string' => 'El valor debe ser caracteres'
                );
                $v = Validator::make($data, $rules, $messages);
                if ($v->fails()) {
                    return response()->json([
                        'error' => $v->errors()
                    ]);
                } else {
                    return $request->value;
                }
                break;
 
            case "telefono":
                $data = $request->all();
                $rules = array(
                    'value' => 'required|max:10|string'
                );
                $messages = array(
                    'value.required' => 'El campo no puede ser blanco',
                    'value.max' => 'El valor maximo es 10 caracteres',
                    'value.string' => 'El valor debe ser caracteres'
                );
                $v = Validator::make($data, $rules, $messages);
                if ($v->fails()) {
                    return response()->json([
                        'error' => $v->errors()
                    ]);
                } else {
                    return $request->value;
                }
                break;
            case "observaciones":
                $data = $request->all();
                $rules = array(
                    'value' => 'max:500|string'
                );
                $messages = array(
                    'value.max' => 'El valor maximo es 10 caracteres',
                    'value.string' => 'El valor debe ser caracteres'
                );
                $v = Validator::make($data, $rules, $messages);
                if ($v->fails()) {
                    return response()->json([
                        'error' => $v->errors()
                    ]);
                } else {
                    return $request->value;
                }
                break;
 
            case "fecha":
                $data = $request->all();
                $rules = array(
                    'value' => 'required|date_format:d/m/Y H:i'
                );
                $messages = array(
                    'value.required' => 'El campo no puede ser blanco',
                    'value.date_format' => 'El campo debe tener un formato de fecha valido: DD/MM/YYYY HH:MM'
                );
                $v = Validator::make($data, $rules, $messages);
                if ($v->fails()) {
 
                    return response()->json([
                        'error' => $v->errors(),
                        'bandera' => 0
                    ]);
                } else {
                    return $request->value;
                }
                break;
 
 
        };
}

Bien hay mas codigo pero aqui es donde esta el problema en lo que acabo de publicar, como ya entederan tengo un formulario basico que sube un archivo excel al servidor, el archivo es validado y luego descargado a un datatable, si vieron el archivo JS de abajo alli es donde uso el plugin Jeditable. El Jeditable tiene una ruta, se llama "editable" y si ya vieron en el controlador abajo tengo a la funcion editable.

Que es lo que hago alli? como jeditable envia todo usando ajax al servidor recibo la informacion alli en el controlador y lo que hago es que dependiendo del campo de la tabla que reciba lo someto a una validacion.

Por favor fijence solo en el caso: "albaran" ya que los demas casos no tiene la variable de retorno valores, ya que estoy probando con una para entender despues las otras. Si pueden observar cuando la validacion falla hago un return response->json y envio "errores" y "valores" que "valores" es el resultado del campo que ocasiono el error.

En la tabla que puedo ver? pues cuando la validacion falla puedo ver el error y el valor del campo que ocasiono el error pero lo veo en formato json ejemplo:
{"errores":{"value":["El valor maximo es 10 caracteres"]},"valores":"0703090057AaA"}

Pero yo no quiero ver esto en formato json, yo quiero manipular ese json, obtener a "errores" y "valores" para poder utilizarlos a mi antojo pero no puedo, no puedo manipular el json, bueno...no logro manipularlo realmente.

Podrian ayudarme?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder