Foros del Web » Programando para Internet » PHP »

Ayuda Multiples formularios individuales

Estas en el tema de Ayuda Multiples formularios individuales en el foro de PHP en Foros del Web. tengo 2 bases de datos, una productos y una ventas,, pues levo 2 dias tratando de hayarle solucion a esto y nada lo que hace ...
  #1 (permalink)  
Antiguo 06/01/2011, 00:28
 
Fecha de Ingreso: junio-2009
Mensajes: 26
Antigüedad: 10 años, 5 meses
Puntos: 0
Ayuda Multiples formularios individuales

tengo 2 bases de datos, una productos y una ventas,, pues levo 2 dias tratando de hayarle solucion a esto y nada

lo que hace es que cuando carga la pagina llama los registros de la tabla productos y los muestra en una tabla y al final de la tabla genera un boton, en el cual lo queno logro es que al hacer click se guarden los registros de esa linea en la tabla ventas y que se regrese a la misma pagina, ya que mas que todo funciona como sistema de inventario. y ese es el problema no se como hacer para o bien me genere difetentes issets, o nombres de los campos para que solo guarde esa linea...

acontinuacion adjunto los codigos fuentes y una captura
Tabla: productos
Código PHP:
CREATE TABLE IF NOT EXISTS `productos` (
  `
codigopvarchar(10NOT NULL,
  `
nombrevarchar(50NOT NULL,
  `
cantidaddouble(5,0NOT NULL,
  `
preciodouble(5,2NOT NULL,
  `
fechadate NOT NULL,
  
PRIMARY KEY (`codigop`)
ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- 
Volcar la base de datos para la tabla `productos`
--

INSERT INTO `productos` (`codigop`, `nombre`, `cantidad`, `precio`, `fecha`) VALUES
('3434''asdfasdf'34.00'2011-01-03'); 
Tabla ventas
Código PHP:
CREATE TABLE IF NOT EXISTS `ventas` (
  `
codigopvarchar(10NOT NULL,
  `
nombrevarchar(50NOT NULL,
  `
preciodouble(5,2NOT NULL,
  `
fechadate NOT NULL,
  
PRIMARY KEY (`codigop`)
ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- 
Volcar la base de datos para la tabla `ventas`
--

INSERT INTO `ventas` (`codigop`, `nombre`, `precio`, `fecha`) VALUES
('12''asdf'2.00'2011-01-12'),
(
'3434''wsdf'23.00'2011-01-02'); 
Codigo Fuente de ventas.php
Código PHP:
 <?php   
                       
require_once("../class/conexion.php");

$result =  mysql_query("SELECT codigop,nombre,cantidad,precio,fecha FROM productos");;   



if (
$row mysql_fetch_array($result)){
$n=0;
echo 
"<center>";
echo 
"<form method='POST' action=''>";
echo 
"<div class='centrado'<table border = '1'> \n";

echo 
"<tr> \n";

echo 
"<td><b>Codigo</b></td> \n";
echo 
"<td><b>Nombre</b></td> \n";
echo 
"<td><b>Precio</b></td> \n";
echo 
"<td><b>Cantidad</b></td> \n";
echo 
"<td><b>Fecha</b></td> \n";
echo 
"<td><b>Comprar</b></td> \n";
echo 
"</tr> \n";

do {
  
echo 
"<tr> \n";

echo 
'<td>'."<input type='text' name='codigop$n' size='5' value='$row[0]'readonly />"."</td>";
echo 
'<td>'."<input type='text' name='nombrep$n' size='30' value='$row[1]'readonly />"."</td>";
echo 
'<td>'."<input type='text' name='preciop$n' size='5' value='$row[3]'readonly />"."</td>";
echo 
'<td>'."<input type='text' name='cantidadp$n' size='5' value='$row[2]'readonly />"."</td>";
echo 
'<td>'."<input type='text' name='fechap$n' size='7' value='$row[4]'readonly />"."</td>";

echo 
"<td><input type='submit' name='buscar$n' value='Comprar'></td>\n";
$n=n+1;
 
    
          
echo 
"</tr> \n";

} while (
$row mysql_fetch_array($result));

echo 
"</table></div></form>";

} else {

echo 
"¡ La base de datos está vacia !";

}     
echo 
"</center>";  
                 
 
            
?>  

     <div id="formulario">
         
    
           
         </div>
         </div>
  </div>
</body>
</html>
Imagen


Gracias por su ayuda!
  #2 (permalink)  
Antiguo 06/01/2011, 07:11
 
Fecha de Ingreso: junio-2010
Mensajes: 59
Antigüedad: 9 años, 6 meses
Puntos: 5
Respuesta: Ayuda Multiples formularios individuales

Hola:
lo que veo de tu codigo es que lo unico que hace es mostrar registros, no hay ningun codigo para guardar registros.
Como te estas generando varios formularios, pero solo uno es al que se le va a hacer submit, no es necesario que le generes un name diferente a cada elemento de los formularios, puedes ponerle a todos el mismo nombre para que al recuperar la informacion del post, sepas como se llaman los campos a recuperar, pero para cuestiones de validacion en javascript, si puedes poner un id diferente a cada elemento de los formularios.
Entonces, usando tu ejemplo, la idea sería:
Código PHP:
if ($row mysql_fetch_array($result)){ 
echo 
"<center>"
echo 
"<form method='POST' action=''>"
echo 
"<div class='centrado'<table border = '1'> \n"

echo 
"<tr> \n"

echo 
"<td><b>Codigo</b></td> \n"
echo 
"<td><b>Nombre</b></td> \n"
echo 
"<td><b>Precio</b></td> \n"
echo 
"<td><b>Cantidad</b></td> \n"
echo 
"<td><b>Fecha</b></td> \n"
echo 
"<td><b>Comprar</b></td> \n"
echo 
"</tr> \n"

do { 
   
echo 
"<tr> \n"

echo 
'<td>'."<input type='text' name='codigo' size='5' value='$row[0]'readonly />"."</td>"
echo 
'<td>'."<input type='text' name='nombre' size='30' value='$row[1]'readonly />"."</td>"
echo 
'<td>'."<input type='text' name='precio' size='5' value='$row[3]'readonly />"."</td>"
echo 
'<td>'."<input type='text' name='cantidad' size='5' value='$row[2]'readonly />"."</td>"
echo 
'<td>'."<input type='text' name='fecha' size='7' value='$row[4]'readonly />"."</td>"

echo 
"<td><input type='submit' name='buscar' value='Comprar'></td>\n"
 
           
echo 
"</tr> \n"

} while (
$row mysql_fetch_array($result)); 

echo 
"</table></div></form>"

} else { 

echo 
"¡ La base de datos está vacia !"

}      
echo 
"</center>";   

//PARA AGARRAR EL POST

if(isset($_POST['buscar'])) { 
   echo 
"<pre>";print_r($_POST);echo "</pre>"// ves todo lo que te llega del post, luego lo borras
   //aqui haces la insercion del registro

Saludos
  #3 (permalink)  
Antiguo 06/01/2011, 09:14
 
Fecha de Ingreso: junio-2009
Mensajes: 26
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Ayuda Multiples formularios individuales

gracias, en cuanto llegue al trabajo lo pruebo, en cierto no puse codigo de incercion por que sinceramente no le hayaba como diferenciar los diferentes nombres de las cajas de texto para que solo me tome 1 al igual de los botondes y que solo envie 1... pero en cuando llegue al trabajo lo pruebo
  #4 (permalink)  
Antiguo 06/01/2011, 12:31
 
Fecha de Ingreso: junio-2009
Mensajes: 26
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Ayuda Multiples formularios individuales

l probé y que bueno, me muestra el post que quiero mandar, lo unico que si tengo mas de algun registro ahi, me manda siempre el primero, aunque le de click a cualquier otro, no lo he resuelto, lo que hise fue qu los nombres de los cambios se guardaran en un array para despues guardar solo los que quiero. pero aun asi sigo sujeto al formulario individual y que detecte que campos estoy mandando

aqui el codigo de lo que le hice

Código PHP:
Ver original
  1. echo "<tr> \n";
  2.  
  3. echo '<td>'."<input type='text' name='codigo[]' size='5' value='$row[0]'readonly />"."</td>";
  4. echo '<td>'."<input type='text' name='nombre[]' size='30' value='$row[1]'readonly />"."</td>";
  5. echo '<td>'."<input type='text' name='precio[]' size='5' value='$row[3]'readonly />"."</td>";
  6. echo '<td>'."<input type='text' name='cantidad[]' size='5' value='$row[2]'readonly />"."</td>";
  7. echo '<td>'."<input type='text' name='fecha[]' size='7' value='$row[4]'readonly />"."</td>";
  8.  
  9. echo "<td><input type='submit' name='buscar[$n]' value='Comprar'></td>\n";
  10.  
  11.            
  12. echo "</tr> \n";
  13.  
  14. } while ($row = mysql_fetch_array($result));
  15.  
  16.    $n=n+1;
  17. echo "</table></div></form>";
  18.  
  19. } else {
  20.  
  21. echo "¡ La base de datos está vacia !";
  22.  
  23. }      
  24. echo "</center>";    
  25.                  
  26.                        if(isset($_POST['buscar'])) {
  27.    echo "<pre>";print_r($_POST);echo "</pre>"; // ves todo lo que te llega del post, luego lo borras
  28.    
  29.    //aqui haces la insercion del registro
  30.                                  }
  31. ?>  
  32.  
  33.      <div id="formulario">
  34.          
  35.    
  36.            
  37.          </div>
  38.          </div>
  39.   </div>
  40. </body>
  41. </html>
  #5 (permalink)  
Antiguo 06/01/2011, 20:48
 
Fecha de Ingreso: junio-2009
Mensajes: 26
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Ayuda Multiples formularios individuales

ya lo resolvi... :D!

Código PHP:
Ver original
  1. if(isset($_POST['buscar'])) {
  2.                 $a = ($_POST['buscar']);
  3.                $pos = array_search('Comprar',$a);
  4.                            echo "$pos";    
  5.    
  6.               if(isset($_POST['buscar'][$pos])) {
  7.              
  8.               $cod = ($_POST['codigo'][$pos]);
  9.               $nom = ($_POST['nombre'][$pos]);
  10.               $pre = ($_POST['precio'][$pos]);
  11.               $fec = ($_POST['fecha'][$pos]);
  12.              
  13.                            
  14.   mysql_query("INSERT INTO ventas(codigop, nombre, precio, fecha) VALUES ('$cod', '$nom', '$pre', '$fec')")
  15.      
  16.          or die ("Fallo en la consulta");
  17.              }else{echo "no es el 1";}

Etiquetas: individuales, multiples, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:33.