Código HTML:
Ver original
Luego envío el formulario por post, en el va un arreglo (aca el problema) que si le hago un var_dump() tendría esta forma:
Código PHP:
Este envío post sale de una vista y va a parar a un controlador en el cual:Ver original
[0]=> string(14) "<p>bla bla</p>" [1]=> string(14) "<p>bla bla</p>" }
1 - Almaceno el array en una variable
$descripcion_especificaciones = $_POST['descripcion_especificaciones'];
2 - paso esta variable como parámetro de la función addProductos();
Código PHP:
La funcion addProductos() , junto con otras encargadas de insertar los datos en la base de datos, se encuentran en el modelo:Ver original
//SIMPLE $name = $_POST['name_producto']; $marcas = $_POST['marcas']; $status = $_POST['status_producto']; //MULTI-DIMENSION $files_caracteristicas = $_POST['files_caracteristicas']; $grupos_caracteristicas = $_POST['grupos_caracteristicas']; $status_caracteristicas = $_POST['status_caracteristicas']; $descripcion_caracteristicas = $_POST['descripcion_caracteristicas']; $grupos_especificaciones = $_POST['grupos_especificaciones']; $status_especificaciones = $_POST['status_especificaciones']; $descripcion_especificaciones = $_POST['descripcion_especificaciones']; $files_galeria = $_POST['files_galeria']; $status_galeria = $_POST['status_galeria']; $files_slideshow = $_POST['files_slideshow']; $status_slideshow = $_POST['status_slideshow']; //var_dump($descripcion_especificaciones); addProductos($name, $marcas, $status, $files_caracteristicas, $grupos_caracteristicas, $status_caracteristicas, $descripcion_caracteristicas, $grupos_especificaciones, $status_especificaciones, $descripcion_especificaciones, $files_galeria, $status_galeria, $files_slideshow, $status_slideshow);
Código PHP:
El Problema se presenta cuando recorro con for el arreglo en la función addEspecificaciones();Ver original
function addCaracteristicas($idproducto, $grupo, $imagen, $estado, $descripcion){ for($i = 0; $i < $tot; $i++){ $consulta = "INSERT INTO caracteristicas VALUES(null, $idproducto, $grupo[$i], $imagen[$i], $estado[$i], '".$descripcion[$i]."')"; $conexion = crear_conexion(SERVER,USER,PASS); $db = DATABASE; consulta_base_de_datos($consulta, $db, $conexion); } } function addEspecificaciones($idproducto, $grupo, $estado, $descripcion){ for($indice = 0; $indice < $total; $indice++){ $consulta = "INSERT INTO especificaciones VALUES(null, $idproducto, $grupo[$indice], $estado[$indice], '".$descripcion[$indice]."')"; $conexion = crear_conexion(SERVER,USER,PASS); $db = DATABASE; consulta_base_de_datos($consulta, $db, $conexion); } } function addGaleriaDeImagenes($idproducto, $imagen, $status){ for($i = 0; $i < $tot; $i++){ $consulta = "INSERT INTO galeria_de_imagenes VALUES(null, $idproducto, $imagen[$i], $status[$i])"; $conexion = crear_conexion(SERVER,USER,PASS); $db = DATABASE; consulta_base_de_datos($consulta, $db, $conexion); } } function addSlideshowDeImagenes($idproducto, $imagen, $status){ for($i = 0; $i < $tot; $i++){ $consulta = "INSERT INTO slideshow_de_imagenes VALUES(null, $idproducto, $imagen[$i], $status[$i])"; $conexion = crear_conexion(SERVER,USER,PASS); $db = DATABASE; consulta_base_de_datos($consulta, $db, $conexion); } } function addProductos($name, $marcas, $status, $files_caracteristicas, $grupos_caracteristicas, $status_caracteristicas, $descripcion_caracteristicas, $grupos_especificaciones, $status_especificaciones, $descripcion_especificaciones, $files_galeria, $status_galeria, $files_slideshow, $status_slideshow){ $consulta = " INSERT INTO productos VALUES (null, $marcas, $status, '".$name."')"; $conexion = crear_conexion(SERVER,USER,PASS); $db = DATABASE; consulta_base_de_datos($consulta, $db, $conexion); addEspecificaciones($idproducto, $grupos_especificaciones, $status_especificaciones, $descripcion_especificaciones); addCaracteristicas($idproducto, $grupos_caracteristicas, $files_caracteristicas, $status_caracteristicas, $descripcion_caracteristicas); addGaleriaDeImagenes($idproducto, $files_galeria, $status_galeria); addSlideshowDeImagenes($idproducto, $files_slideshow, $status_slideshow); cerrar_conexion($conexion); }
Notice: Undefined offset: 1 in C:\xampp\htdocs\proyecto\back\modulos\productos\mo del.php on line 130
la línea 130 es esta:
$consulta = "INSERT INTO especificaciones VALUES(null, $idproducto, $grupo[$indice], $estado[$indice], '".$descripcion[$indice]."')";
Googleé al respecto, según entendí este error se está presentando porque al recorrer el array con for no encuentra el índice "1" del mismo, lo que es raro porque estoy completamte seguro que el arreglo llega bien. Si hago un var_dump dentro de addEspecificaciones() el arreglo se muestra con dos posiciones "0 y 1" y $total = count($descripcion); da como resultado 2, lo cual luego al recorrer con for
$indice < $total; ordenará que solo se repita dos veces el bucle (o sea, para los indices 0 y 1).
Es raro, porque addCaracteristicas() funciona de la misma manera y sin embargo no me da problemas.
Se que puedo apagar los notice con @ pero el problema es que al no recorrerse el array por completo tampoco me inserta los registros en la base de datos.
Espero el tema no halla quedado demasiado extenso de leer. Temía de no explicarme al no detallar bien el problema. Desde ya agradezco su ayuda. Un fuerte abrazo.