Bueno en terminos generales te dejo un ejemplo para que implementes o adaptes:
Primero imagino que debe funcionar como si facturaras, es decir, deberia de ir creando lineas dinamicamente a medida que vas agregando productos:
Ese es un ejemplo básico de la función para generar lineas, pero hay muchas otras maneras, aqui un ejemplo:
https://jsfiddle.net/xfxstudios/xj6j42vc/
luego necesitamos atrapar ese arreglo en php ya que los nombres van de esta manera
articulo[] para ello te dejo este otro ejemplo:
Código PHP:
Ver original$cuenta = count($_POST['articulos']);
for($i=0; $i < $cuenta; $i++)
{
//preparamos las variables
$arti = $_POST['articulo'][$i];
$cant = $_POST['cantidad'][$i];
//consultamos el stock
$consulta = $db->query("SELECT articulo,stock FROM productos WHERE articulo = '$arti' ");
$r_arti = $consulta->fetch_assoc();
if($cant > $r_arti["stock"])
{
//si el stock es mayor cargamos el producto en un array y lo eliminamos de la presente consulta (no probado, realiza tus pruebas)
$noProcede['articulo'] = $arti;
}else
{
//si no es mayor lo actualizamos
$actu = $db->query("UPDATE productos SET stock = stock-$cant WHERE articulo = '$arti'");
}
}
//AQUI COLOCAS EL RESTO DEL CODIGO QUE NECESITES PARA PROCESAR Y MOSTRAR LOS ARTICULOS NO PROCESADOS QUE ESTAN EN EL ARRAY Y TODO LO DEMAS