Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/03/2008, 16:31
Avatar de SirZoX
SirZoX
 
Fecha de Ingreso: mayo-2006
Ubicación: Valencia
Mensajes: 124
Antigüedad: 18 años, 7 meses
Puntos: 2
Re: crear campos de formulario de forma dinamica

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">&nbsp;</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&ntilde;adir l&iacute;nea" ></td>
      </tr>
      <tr>
      <td align="center"><input type="submit" name="enviar" value=":: A&ntilde;adir albar&aacute;n :: "></td>
      </tr>
    </table>
    </form>
</body>
</html>