Gente, me he metido en un lío y no sé cómo resolverlo. Es algo confuso pero lo explicaré lo mejor que pueda a ver si me pueden ayudar.
Tengo una tabla que se crea dinámicamente en base a una consulta en MYSQL (Uso el mvc con un framework que usan donde hago las prácticas). En esa tabla al final de cada fila generé un botón "Editar".
Cuando oprimo el botón editar se abre una modal con un formulario que tiene todos los datos de esa fila (Todo esto por ajax porque dentro de la ventana quiero enviar unos mensajes sin tener que actualizar todo).
¿Cómo funciona? La tabla se crea en un foreach y dentro del foreach hay un include con el código de mi ventana modal. Al principio no funcionaba porque, obviamente cada botón y cada modal tenían el mismo ID.
Así que lo cambié para que el ID se genere dinámicamente. Es decir, que la fila con la clave primaria 7 generará el botón "#btn_abri7" que abre la modal "#modal7".
Hasta ahí la cosa parecía funcionar. Doy click al botón y se carga la modal con los datos.
Si yo meto la URL de la función de mi controlador, veo que lo que estoy devolviendo es una ventana modal con todos los datos por cada fila de mi consulta. Es decir que ahora que tengo tres registros hay tres modales cargadas con datos esperando a ser llamadas (Afortunamdamente no creo que nunca sean muchos registros a la vez).
Ok, el asunto es que mi controlador me devuelve un mensaje de undefined index por cada dato del form que envío por Ajax. Si hago que la función retorne un var_dump recibo NULL.
Eso en firefox, opera, chrome, explorer, etc. En EDGE mi función sí trabaja bien. Me devuelve el var_dump los datos del formulario.
Esto con names estáticos. Si le pongo names dinámicos a cada input, en plan "name+clave primaria) entonces ya no recibo el mensaje de undefined index porque todos mandan el array... PERO!!!! al ser un name dinámico el controlador ahora no sabe qué hacer con él.
Es decir, si le mando un input con el name #nombre7 (Siguiendo el ejemplo anterior de la fila 7) el controller queda loco porque estaba esperando era a $_POST['nombre'].
Qué puedo hacer?
Les dejo mis códigos por si alguien puede echar una mano.
Esta es mi vista. La función mostrar muestra la tabla en el div resultado:
http://codepen.io/ichiparanoid/pen/dXLrmx
Esta es la tabla que se carga dentro del div. Al final tiene un botón que es el que llamará a la modal. La modal va en el include del final de mi foreach:
http://codepen.io/ichiparanoid/pen/xOZVjr
Esta es la ventana modal que va metida en el foreach con un include
http://codepen.io/ichiparanoid/pen/bZJpKq
Y este es el controlador que debe recibir los datos de la ventana modal:
http://codepen.io/ichiparanoid/pen/rLbZKd
Si alguien pudiera ayudarme con esto les agradecería. No sé cómo resolverlo y me estoy jugando una oportunidad laboral.
La verdad soy bueno con PHP pero nunca había usado AJAX todavía. Estoy empezando a aprender JS.
Gracias de antemano.