Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/02/2015, 09:16
Avatar de MLDGATO
MLDGATO
 
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años, 9 meses
Puntos: 2
Pregunta Guardar campos dinámicos de un formulario a mysql

Hola tengo un formulario que me sirve para realizar cotizaciones, en dicho formulario agrego los datos del cliente al que le quiero cotizar y los elementos que le cotizo, la cosa es que hay cotizaciones que solo tienen un producto y otros que tienen más de uno, entiendo bien que debo utilizar dos tablas una que tenga los datos de la cotización y otra que tenga los elementos de la cotizaciones pero mi problema es que estoy generando los campos de las descripciones forma dinámica y ahí es donde no se como guardarlos en la base de datos, lo que tengo es lo siguiente:

Código HTML:
Ver original
  1. <form id="PerfilPuesto" name="PerfilPuesto" method="post">
  2.               <h1>Nueva Cotización</h1>
  3.               <table width="950">
  4.                 <tr>
  5.                   <td><p>
  6.                     <label for="Empresa">Nombre de la Empresa:</label>
  7.                     </p>
  8.                     <p>
  9.                       <input name="Empresa" type="text" required="required" class="datos" id="Empresa">
  10.                   </p></td>
  11.                   <td><p>
  12.                     <label for="Contacto">Contácto:</label>
  13.                     </p>
  14.                     <p>
  15.                       <input name="Contacto" type="text" required="required" class="datos" id="Contacto">
  16.                   </p></td>
  17.                   <td><p>
  18.                     <label for="Email">Email:</label>
  19.                     </p>
  20.                     <p>
  21.                       <input name="Email" type="email" required="required" class="datos" id="Email">
  22.                   </p></td>
  23.               </tr>
  24.                 <tr>
  25.                   <td><p>
  26.                     <label for="Tel">Teléfono:</label>
  27.                     </p>
  28.                     <p>
  29.                       <input name="Tel" type="text" required="required" class="datos" id="Tel">
  30.                   </p></td>
  31.                   <td><p>
  32.                     <label for="NIT">NIT:</label>
  33.                     </p>
  34.                     <p>
  35.                       <input name="NIT" type="text" class="datos" id="NIT">
  36.                   </p></td>
  37.                   <td><p>
  38.                     <label for="Direccion">Dirección:</label>
  39.                     </p>
  40.                     <p>
  41.                       <input name="Direccion" type="text" class="datos" id="Direccion">
  42.                   </p></td>
  43.               </tr>
  44.             </table>
  45.             <br />
  46.               <table width="950">
  47.                 <tr>
  48.                   <td><p>
  49.                     <label for="cant1">Cantidad:</label>
  50.                     </p>
  51.                     <p>
  52.                       <input name="cant1" type="number" required="required" class="datosmenor3" id="cant1">
  53.                   </p></td>
  54.                   <td><p>
  55.                     <label for="desc1">Descripción:</label>
  56.                     </p>
  57.                     <p>
  58.                       <input name="desc1" type="text" required="required" class="datos3" id="desc1">
  59.                   </p></td>
  60.                   <td><p>
  61.                     <label for="Prec1">Precio Unitario:</label>
  62.                     </p>
  63.                     <p>
  64.                       <input name="Prec1" type="number" required="required" class="datosmenor3" id="Prec1">
  65.                   </p></td>
  66.                 </tr>
  67.               </table>
  68.               <br />
  69.             <a href="JavaScript:agregarCampo();" class="link"> Agregar Descripción </a>
  70.             <div id="contenedorcampos">
  71.                 <!--Dentro de este div se generan los campos dinámicos-->
  72.         </div>
  73.             <table align="center"><tr><td><input name="submit" type="submit" class="botonform" id="submit" value="Enviar"></td></tr></table>
  74.             </form>

Ese el el formulario html y dento del div con el nombre contenedorcampos van a crearse todos los campos dinámicos

Código Javascript:
Ver original
  1. function agregarCampo(){
  2.     campos = campos + 1;
  3.     var NvoCampo= document.createElement("div");
  4.     NvoCampo.id= "divcampo_"+(campos);
  5.     NvoCampo.innerHTML=
  6.         "<table width='950'>" +
  7.         "   <tr>" +
  8.         "     <td nowrap='nowrap'>" +
  9.         "       <p><label>Cantidad</label></p>" +
  10.         "        <p><input type='number' class='datosmenor3' required='required' min='1' name='cant" + campos + "' id='cant" + campos + "'></p>" +
  11.         "     </td>" +
  12.         "   <td nowrap='nowrap'>" +
  13.         "       <p><label>Descripión</label></p>" +
  14.         "           <p><input type='text' class='datos3' required='required' name='desc" + campos + "' id='desc" + campos + "'></p>" +
  15.         "     </td>" +
  16.         "     <td nowrap='nowrap'>" +
  17.         "       <p><label>Precio Unitario</label></p>" +
  18.         "        <p><input type='number' class='datosmenor3' required='required' min='1' name='Prec" + campos + "' id='Prec" + campos + "'></p>" +
  19.         "     </td>" +
  20.         "   </tr>" +
  21.         "   <tr>" +
  22.         "     <td nowrap='nowrap'>" +
  23.        
  24.         "     </td>" +
  25.         "     <td nowrap='nowrap'>" +
  26.        
  27.         "     </td>" +
  28.         "     <td nowrap='nowrap' align='right'>" +
  29.         "        <a href='JavaScript:quitarCampo(" + campos +");' class='link'> Quitar </a>" +
  30.         "     </td>" +
  31.         "   </tr>" +
  32.         "</table>";
  33.     var contenedor= document.getElementById("contenedorcampos");
  34.     contenedor.appendChild(NvoCampo);
  35.   }
  36.  
  37.  
  38. function quitarCampo(iddiv){
  39.   var eliminar = document.getElementById("divcampo_" + iddiv);
  40.   var contenedor= document.getElementById("contenedorcampos");
  41.   contenedor.removeChild(eliminar);
  42. }

LAs funciones de javascript agregarCampo sirve para crear un campo a la vez y la otra para eliminar el ultimo campo creado pero a la hora de almacenar los elementos en las dos tablas es donde me pierdo.

Muchas gracias por leer y tambien por ayudar.