Symfony - Guardar datos en BD con symfony y Javascript

 
Vista:

Guardar datos en BD con symfony y Javascript

Publicado por Smm (1 intervención) el 29/05/2018 11:54:31
Tengo algunas dudas a la hora de guardar en mi base de datos.

Tengo una tabla dinámica a la que añado las filas que yo quiero y le meto unos datos. Estoy usando symfony para guardar los datos en la base de datos, pero a la hora de hacer el submit sólo me guarda la última fila que he creado.
¿qué es lo que estoy haciendo mal?

Muchas gracias.

Mi código es este:
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
<div class="container-fluid">
<di class="row">
<br /><br />
<button id="add" class="btn btn-sm btn-success">Agregar</button>
<button id="del" class="btn btn-sm btn-danger">Eliminar</button>
<br /><br />
 
{{ form_start(form, {'method': 'post', 'action': path('precios'), 'attr': {'data-parsley-validate class': 'form-horizontal form-label-left', 'id':'formu'}}) }}
<table class="table table-hover table-condensed"  id="tabla">
    <thead>
    <tr class="info">
        <th><b>Fecha</b></th>
        <th><b>Artículo</b></th>
        <th><b>Precio Entrada</b></th>
        <th><b>Precio Salida</b></th>
    </tr>
    </thead>
    <tbody id="body">
    <tr class="fila-0" id="fila">
        <input type="text" id="contador-filas" value="1" />
        <td>{{ form_widget(form.fecha, { 'attr': {'class': 'form-control ' , 'id':'t_fecha', 'size':'5px', 'name':'formu'} }) }}</td>
        <td>{{ form_widget(form.idProducto, { 'attr': {'class': 'form-control', 'id':'t_producto' } }) }}</td>
        <td>{{ form_widget(form.precioEn, { 'attr': {'class': 'form-control', 'size':'5px', 'id':'t_precio_en'} }) }}</td>
        <td>{{ form_widget(form.precioSa, { 'attr': {'class': 'form-control', 'size':'5px', 'id':'t_precio_sa'} }) }}</td>
    </tr>
 
    <button type="submit" id="guardar" name="guardar" class="btn btn-sm btn-primary" >Guardar </button>
    <button type="reset" name="borrar" class="btn btn-sm btn-warning" >Limpiar </button>
 
    <script src="http://code.jquery.com/jquery.js"></script>
    <link rel="stylesheet" type="text/css" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script type="text/javascript">
 
        $(document).ready(function(){
            $("#add").click(function(){
                                   var tds = $("#tabla tr:first td").length;
                // Obtenemos el total de filas (tr) del id "tabla"
                var trs = $("#tabla tr").length;
 
                cant = $('#contador-filas').val();
                var nuevaFila = "<tr class='fila' id='fila'>";
                cant++;
                $('#contador-filas').val(cant);
 
                nuevaFila+="<td><input class='form-control' type='date' name='fecha["+(cant)+"]' placeholder='fecha"+(cant)+"' required /> </td>"+
                    "<td><select id='frutibundle_precioproducto_idProducto' name='frutibundle_precioproducto[idProducto]' class='form-control'><option value='4' selected='selected'>California Master 2k 26+</option><option value='5'>California Extra 2k 24+</option><option value='6'>California Plus 2k 28+</option></select></td>"+
                    "<td><input class='form-control' id='frutibundle_precioproducto_precioEn' type='text' name='frutibundle_precioproducto[precioEn]' placeholder='precio_en"+(cant)+"' required /> </td>"+
                    "<td><input class='form-control' id='frutibundle_precioproducto_precioSa' type='text' name='frutibundle_precioproducto[precioSa]' placeholder='precio_sa"+(cant)+"' required /> </td>";
 
 
                nuevaFila += "</tr>";
                 $("#tabla").append(nuevaFila);
            });
            /**
             * Funcion para eliminar la ultima columna de la tabla.
             * Si unicamente queda una columna, esta no sera eliminada
             */
            $("#del").click(function(){
                var trs=$("#tabla tr").length;
                if(trs>2)
                {
                    cant--;
                    $('#contador-filas').val(cant)
                    $("#tabla tr:last").remove();
 
                }
            });
        });
    </script>
    </tbody>
</table>
{{ form_end(form) }}
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