Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/01/2010, 08:27
linux_debian
 
Fecha de Ingreso: septiembre-2008
Mensajes: 16
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda ayuda por favor

ok voy a explicar voy a mostrar los codigos ok,
aqui el codigo para añadir campos de textos con nombres renglon[], articulo[] entre otros
Código Javascript:
Ver original
  1. <table   border="0.5" align="center" width="700" id="tablaFormulario">
  2.  
  3.        
  4.  
  5.  
  6.  
  7.  
  8.  
  9. </table>
  10.  
  11.      
  12.  
  13.       <tr>
  14.  
  15.         <td align="center"><input type="button" onClick="addarticulo()" value="Añadir" class="buttonb" ></td>
  16.  
  17.   <td align="center"><input type="button" onClick="removePerson()" value="Borrar" class="buttonb" ></td>      
  18. </tr>
  19.  
  20.         <script language="javascript" type="text/javascript">
  21.  
  22.  
  23.  
  24.  
  25.  
  26.        
  27.  
  28.     var indiceFilaFormulario=1;
  29.  
  30.    
  31.  
  32.  
  33. function addarticulo(){
  34.  
  35. var renglon=<?=$contador-1;?>//extraemos el valor de la variable renglon
  36.  
  37.  
  38.  
  39.     myNewRow = document.getElementById("tablaFormulario").insertRow(-1);
  40.  
  41.     myNewRow.id=indiceFilaFormulario;
  42.  
  43.     myNewCell=myNewRow.insertCell(-1);
  44.  
  45. alterno2=indiceFilaFormulario+renglon;
  46.        
  47.  
  48.     myNewCell.innerHTML="<td align='center'><input type='text' size='1' onFocus='this.blur()' value='"+alterno2+"' name='renglon[]' ></td>";
  49.  
  50.     myNewCell=myNewRow.insertCell(-1);
  51.  
  52.     myNewCell.innerHTML="<td align='center'> <textarea rows='1' cols='21' name='articulo[]' value='articulo[]' id='articulo' type='text'></textarea></td>";
  53.  
  54.     myNewCell=myNewRow.insertCell(-1);
  55.  
  56.     myNewCell.innerHTML="<td><textarea rows='1' cols='21'  name='descripcion[]' type='text'  ></textarea></td>";
  57.  
  58.     myNewCell=myNewRow.insertCell(-1);
  59.  
  60.     myNewCell.innerHTML="<td><input  type='text' size='4'  name='unidad[]'></td>";
  61.  
  62.     myNewCell=myNewRow.insertCell(-1);
  63.  
  64.     myNewCell.innerHTML="<td align='center'><input  type='text' size='4'  onkeyup='sumar()' name='cantidad[]'></td>";
  65.  
  66.  
  67.  
  68.     indiceFilaFormulario++;
  69.  
  70.     }
  71.  
  72.  
  73.  
  74.  
  75.     function removePerson(){
  76.  
  77.    
  78. if (indiceFilaFormulario >=2){
  79.                 // grab the element again!
  80.  
  81.                 var tbl = document.getElementById("tablaFormulario");
  82.  
  83.                 // grab the length!
  84.  
  85.                 var lastRow = tbl.rows.length;
  86.  
  87.                 // delete the last row if there is more than one row!
  88.  
  89.                 if (lastRow > -1) tbl.deleteRow(lastRow -1);
  90.  
  91.             indiceFilaFormulario--;
  92. }
  93.  
  94.     }
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102. </script>
  103.  
  104.    
  105.    
  106.  
  107.            
  108.  
  109.  </table>

este codigo me genera campos de textos dinamicamente, pero todos con el nombre 'renglon[]' y asi con cada uno de los campos, es decir en forma de array

ahora en la base de datos esta asi son dos tablas requisiciones y articulos de requisicion


CREATE TABLE requisicion
(
id_requisicion serial NOT NULL,
para character(30) NOT NULL,
departamento_solicitante character(35) NOT NULL,
autorizado_por character(50) NOT NULL,
concepto_requisicion character(255),
observaciones character(255),
persona_solicitante character(70) NOT NULL,
tipo_de_requisicion character(20),
fecha_requisicion date,
CONSTRAINT "Clave Primaria" PRIMARY KEY (id_requisicion)
)




CREATE TABLE articulo_requisicion
(
num_requisicion integer,
renglon integer NOT NULL,
articulo character(255) NOT NULL,
descripcion character(255),
cantidad integer,
unidad character(30),
id_articulos serial NOT NULL
)



ok necesito ir insertando en la base de datos cada unos de los campos que valla generando en articulo requisicion asi como también el "id_requisicion" en la tabla articulo_requisicion ya que actualmente solo me hace el UPDATE solo el ultimo registro que se ah introducido, como anteriormente dije el INSERT si me funciona pero el UPDATE no.

aqui coloco el INSERT, Este codigo me funciona bien al menos eso es lo que parece.
Código PHP:
Ver original
  1. foreach($_POST['renglon'] as $row=>$ren)
  2. {
  3. $renglon=pg_escape_string($ren);
  4. $articulo=pg_escape_string($_POST['articulo'][$row]);
  5. $descripcion=pg_escape_string($_POST['descripcion'][$row]);
  6. $unidad=pg_escape_string($_POST['unidad'][$row]);
  7. $cantidad=pg_escape_string($_POST["cantidad"][$row]);
  8.  
  9. $query = "INSERT  INTO articulo_requisicion (renglon,articulo,descripcion,unidad,cantidad,num_requisicion)  
  10.  
  11. VALUES ('".$renglon."','".$articulo."','".$descripcion."','".$unidad."','".$cantidad."','".$id_requisicion."')";
  12.  
  13.  
  14. $result = pg_query($query) or die('Insercion de datos errada' . pg_last_error());
  15. }


Entonces lo que necesesito es hacer el UPDATE A los campos de articulo_requisicion