El problema que tengo ahora es el siguiente, cuando programo que al pulsar un boton se añadan campos nuevos, el script funciona y los agrega, el problema llega cuando uno de los campos es un campo desplegable que tiene que sacar las opciones de una consulta sql (que yo tengo hecha en php), por lo que parece, el codigo javascript cuando llega ahi, falla, y no añade linea, en embargo, si retiro el codigo php y dejo solo el java, funciona perfectamente y añade.
Alguien podria entonces darme alguna idea de como puedo solucionarlo?
os dejo el codigo completo para que lo veais mas claro.
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)) { ?> <option value ='<? echo $res['producto']; ?>'><? echo $res['producto']; ?></option> <? } } $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(-1); myNewRow.id=indiceFilaFormulario; myNewCell=myNewRow.insertCell(-1); myNewCell.innerHTML="<td><input type='text' name='cantidad["+indiceFilaFormulario+"]' ></td>"; myNewCell=myNewRow.insertCell(-1); myNewCell.innerHTML="<td><select name='producto["+indiceFilaFormulario+"]'><? mostrarProductos(); ?></select></td>"; myNewCell=myNewRow.insertCell(-1); myNewCell.innerHTML="<td><input type='text' name='precio["+indiceFilaFormulario+"]'></td>"; myNewCell=myNewRow.insertCell(-1); myNewCell.innerHTML="<td><input type='button' value='Eliminar' onclick='removeLine(this)'></td>"; 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>