Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/09/2015, 11:23
asolano016
 
Fecha de Ingreso: septiembre-2015
Mensajes: 2
Antigüedad: 8 años, 7 meses
Puntos: 0
Como tomar más de un dato de una lista

Buenas, este es mi primer foro y soy nuevo programando en PHP y tengo una con respecto a un sistema que estoy desarrollando para un proyecto universitario. El proyecto es para una clínica la cual desea contar con sistema de facturación, manejo de usuarios y manejo de expedientes.

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:
<p>
    <label>ART&Iacute;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>
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

Código:
        $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{
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.

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