Gracias por la respuesta, al final no utilice variables de sesión, ya que en la función que recibe tengo la classe cart() y guardo ahí cada articulo, pero me diste la idea de como organizarlo con tu respuesta.
Ahora solo uso un form y modifique el nombre de las casillas input para que variara y así poder guardar todos los datos.
El código que si funciona:
Código PHP:
echo "<form action='".base_url()."cliente/$usuario/add_subprodcart' method='post' id='carro_subprod'>";
echo "<table>";
for($k=0; $k<$numsubprods; $k++)
{
$imagen = asset_url()."datos/user".$user[0]->idCliente."/productos/".$subprods[$k]->imagen;
$nombre = $subprods[$k]->descripcion;
$precio = $subprods[$k]->precio;
$unidades = $subprods[$k]->unidades;
$subprodid = $subprods[$k]->idsubproducto;
echo "<tr>";
echo "<td width='100'>";
echo "<div class='imagewrap'>";
echo "<a href=\"javascript:ShowImage('$imagen')\">";
echo "<img height='70' src='$imagen' />";
echo "</a>";
echo "</div>";
echo "</td>";
echo "<td width='200'>$nombre</td>";
echo "<td width='70' align='right'>$precio</td>";
echo "<td width='70'>$unidades</td>";
echo "<td width='70'>";
echo "<select name='qty-".$k."' id='selectUnit'>";
for ($i = 0; $i <= 20; $i++)
{
echo "<option value='$i'>$i</option>";
}
echo "</select>";
echo "</td>";
echo "<td>";
echo $subprodid;
echo "</td>";
echo "<td><input type='hidden' name='prod_id-".$k."' value='$subprodid'/>";
echo "<button type='submit' form='carro_subprod' >".$txtlang['carro']."</button></td>";
echo "</tr>";
}
echo "</table>";
echo "</form>";