Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/05/2013, 09:33
geofran80
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 17 años, 7 meses
Puntos: 14
Respuesta: Envío de varios registros de Tabla por Ajax

Muchas gracias alberto, el tema es el siguiente.

Estoy trabajando con el patrón MVC y tengo en uno de los controladores el método (nuevoControl), que a su vez llama a un método en el modelo llamado (nuevoControlUnidad). Desde el controlador le paso los parámetros obtenidos por POST desde la tabla a la función del modelo. Esto ya lo he hecho pero para traer datos de la base de datos y no he tenido problemas.

El asunto viene cuando quiero insertar datos.

En la vista, tengo un fichero de JavaScript en el que tengo la función de ajax que llama al método del controlador, pasándole los parámetros extraídos por POST, recorriendo con JQuery cada fila.

He probado a sacar por consola cada registro y sus atributos y no tengo problemas. El problema viene porque en el depurador de Chrome me alerta de illegal invocation al método de ajax.

¿Podría saber a qué se debe?

Pongo aquí el código que estoy usando.

ProduccionModel.php
Código:
public function nuevoControlUnidad($codigo, $fechaProd,$ausencias,$pendiente,$salida,$medCPROD,$comentario) {
        $nuevoControl = $this->_db->prepare("INSERT INTO produccionUnidad VALUES(:Fkcodigo,:FechaProd, :ausencias, :pendiente, :salidaPROD, :medCertiPROD, :comentario, :fechaEnvio, :fechaModif)")
                ->execute(
                array(
                    ':Fkcodigo' => $codigo,
                    ':FechaProd' => $fechaProd,
                    ':ausencias' => $ausencias,
                    ':pendiente' => $pendiente,
                    ':salidaPROD' => $salida,
                    ':medCPROD' => $medCPROD,
                    ':comentario' => $comentario,
                    ':fechaEnvio' => date("Y-m-d"),
                    ':fechaModif' => date("Y-m-d")
                ));
    }
ProduccionController.php
Código:
public function nuevoControl() {
        $this->_produccion->nuevoControlUnidad(
                $this->getTexto('FKcodigo'),
                $this->getTexto('FechaProd'),
                $this->getInt('ausencias'),
                $this->getInt('pendiente'),
                $this->getTexto('salidaPROD'),
                $this->getFloat('medCPROD'),
                $this->getTexto('comentario')
        );
    }
script.js
Código:
 $("#btnNuevoControl").on('click',function(){
        $("#tablaNuevoControl tr").each(function(){
            $.ajax({
                url: '/unidades/produccion/nuevoControl',
                type: "POST",
                data:{
                    'FKcodigo':$(this).attr('id'),
                    'FechaProd':$("#selectorFecha").val(),
                    'ausencias':parseInt($(this).find('.ausencias').val()),
                    'pendiente':parseInt($(this).find('.pendiente').val()),
                    'salidaPROD':parseInt($(this).find('.salidaPROD')),
                    'medCPROD':parseFloat($(this).find('.medCPROD')).toFixed(2),
                    'comentario':$(this).find('.comentario').val()
                }   ,
                success:function(datos){
                    console.log('Inserción satisfactoria');
                }            
            });
        });
    });
La verdad, debe ser una tontería pero no doy con el asunto.

Gracias de antemano.
Saludos cordiales.
Francisco J.

Última edición por geofran80; 04/05/2013 a las 09:41