El problema se encuentra en la sección de generar factura en donde sabemos que las facturas pueden tener más de un artículo asociado, de manera que mi bases de datos en MySQL tiene una tabla factura la cual está ligada a una tabla inventario en donde están almacenados los articulos. Seguidamente cree una lista dinamica en HTML el cual carga los articulos segun el contenido de la tabla inventario, para que el usuario pueda seleccionar el valor que el necesita, esto se hizo asi ya que el cliente puede agregar artículos constantemente.
El siguiente código fue creado para realizar la acción explicada anteriormente:
Aquí se cargan los datos y al seleccionar uno este va a ser almacenado en la bases de datos existoamente lo cual esta bien, pero necesito poder agregar N datos al sistema ya que es para generar un factura, se me ocurre es crear un foreach para tomar los valores seleccionados y que sean almacenados en un array para que seguidamente sea almacenado en MySQL en una variable de tipo BLOB o TEXT, he intentado esto pero no me ha funcionado ya que no se como conectar eso al codigo de abajo y despues almacenarlo.
Código:
También no se de que manera este valor es almacenado yala variable $id_articulo se almacena por medio de un $_POST[] en el cual va ser añadido el id de la lista que cree en el código de arriba de la selección de artículo<p> <label>ARTÍCULO:</label> <select name="inventario"id=" id_articulo" size="5" multiple="multiple"> <option value=" ">SELECCIONE UNA OPCIÓN</option> <?php $server = 'localhost'; //servidor $username = 'root'; //usuario de la base de datos $password = ''; //password del usuario de la base de datos $database = 'proyect_db'; //nombre de la base de datos $conexion = @new mysqli($server, $username, $password, $database); if ($conexion->connect_error) //verificamos si hubo un error al conectar, recuerden que pusimos el @ para evitarlo { die('Error de conexión: ' . $conexion->connect_error); //si hay un error termina la aplicación y mostramos el error } $sql="SELECT * from tbl_inventario"; $result = $conexion->query($sql); //usamos la conexion para dar un resultado a la variable if ($result->num_rows > 0) //si la variable tiene al menos 1 fila entonces seguimos con el codigo { $combobit=""; while ($row = $result->fetch_array(MYSQLI_ASSOC)) { $combobit .=" <option value='".$row['id_articulo']."'>".$row['nombre_articulo']."</option>"; //concatenamos el los options para luego ser insertado en el HTML } } else { echo "No hubo resultados"; } $conexion->close(); //cerramos la conexión ?> <?php echo $combobit; ?> </select> </p>
Código:
No se si esto es posible en PHP, no se si debo de utilizar algún tipo de Javascript para poder hacer esto posible, como comentaba anteriormente no tengo experiencia en esto y lo que he logrado crear ha sido con tutoriales y guias que he visto, pero a este punto no he encontrado información relacionada a mi pregunta de manera que me he estancado en el proyecto.$desc_factura = htmlspecialchars(trim($_POST['desc_factura'])); $cedula_usuario = htmlspecialchars(trim($_POST['cedula_usuario'])); $id_proveedor = htmlspecialchars(trim($_POST['id_proveedor'])); $id_articulo = htmlspecialchars(trim($_POST['id_articulo'])); $fecha_pago = htmlspecialchars(trim($_POST['fecha_pago'])); $subtotal = htmlspecialchars(trim($_POST['subtotal'])); $total = htmlspecialchars(trim($_POST['total'])); $saldo = htmlspecialchars(trim($_POST['saldo'])); $id_estado_deuda = htmlspecialchars(trim($_POST['id_estado_deuda'])); $objcxp=new cxp; if ( $objcxp->insertar(array($desc_factura,$cedula_usuario,$id_proveedor,$id_articulo,$fecha_pago,$subtotal,$total,$saldo,$id_estado_deuda)) == true){ echo 'Datos guardados'; }else{
Mi duda principal es como puedo tomar más de un valor en una lista para que luego sean almacenados.
Agradecería cualquier tipo de ayuda, guía, código de ejemplo, video entre otros, para aclarar esta duda.
Gracias de antemano,
Saludos