Hola darioc, gracias por el esfuerzo en explicar los cambios necesarios y por las aclaraciones entre php y javascript.
he estado probando con las variaciones que me has comentado, pero sigue sin funcionarme, sigue sin añadir lineas, aparte que sigue saliendo error de php al insertar con el foreach, pero eso ya lo arreglare mas adelante, por ahora necesito que me muestre las nuevas lineas al pulsar.
te vuelvo a pegar el codigo tal y como lo he dejado despues de probar con tus cambios y a ver si tu o alguien que se deje caer por aqui puede arrojarme algo mas de luz.
Código:
<html>
<head>
<?
mysql_connect('localhost','root','root') or die(mysql_error());
mysql_select_db ('inelux');
//Insertamos los diferentes registros del formulario
if (isset($_POST["enviar"])){
foreach ($_POST["cantidad"] as $indice => $cantidad) {
$cant=$_POST["cantidad"][$indice];
$prod=$_POST["producto"][$indice];
$prec=$_POST["precio"][$indice];
$query="INSERT INTO albaranes ('','','',now(),'','$cant','$prec','')";
mysql_query($query);
}
}
function mostrarProductos () {
while ($res = mysql_fetch_array($c)) {
$select = "<option value ='".$res['producto']."'>".$res['producto'] ."</option>";
}
return $select;
}
$c = mysql_query ('select producto from almacen where 1 order by producto desc') or die(mysql_error());
?>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejemplo formulario</title>
<script language="javascript" type="text/javascript">
var indiceFilaFormulario=1;
function addLine(){
myNewRow = document.getElementById("tablaFormulario").insertRow(index);
myNewRow.rowIndex=indiceFilaFormulario; //ya lo tenías con index
myNewCell=myNewRow.insertCell(index);
myNewCell.innerHTML="<input type='text' name='cantidad["+indiceFilaFormulario+"]' >";
myNewCell=myNewRow.insertCell(index);
myNewCell.innerHTML="<select name='producto["+indiceFilaFormulario+"]'><? mostrarProductos(); ?></select>";
myNewCell=myNewRow.insertCell(index);
myNewCell.innerHTML="<input type='text' name='precio["+indiceFilaFormulario+"]'>";
myNewCell=myNewRow.insertCell(index);
myNewCell.innerHTML="<input type='button' value='Eliminar' onclick='removeLine(this)'>";
indiceFilaFormulario++;
}
function removeLine(obj){
var oTr = obj;
while(oTr.nodeName.toLowerCase()!='tr'){
oTr=oTr.parentNode;
}
var root = oTr.parentNode;
root.removeChild(oTr);
}
</script>
</head>
<body>
<form action="<? echo $PHP_SELF; ?>" name="formulario" method="post">
<table cellpadding="0" cellspacing="0" >
<tr>
<td align="center"> </td>
</tr>
<tr>
<td><table cellpadding='3' cellspacing='3' style='border:#999999' id="tablaFormulario">
<tr bgColor='#CCCCCC'>
<td width="175">Cantidad</td>
<td width="175">Producto</td>
<td width="175">Precio</td>
<td width="100">Eliminar</td>
</tr>
</table></td>
</tr>
<tr>
<td align="right"><input type="button" onClick="addLine()" value="Añadir línea" ></td>
</tr>
<tr>
<td align="center"><input type="submit" name="enviar" value=":: Añadir albarán :: "></td>
</tr>
</table>
</form>
</body>
</html>