Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como hacer para preguntar en un form

Estas en el tema de Como hacer para preguntar en un form en el foro de PHP en Foros del Web. Hola, Tengo un programa, el cual pregunto por un articulo me llama al siguiente programa que se llama consultarticulo.php y me muestra los datos. hasta ...
  #1 (permalink)  
Antiguo 24/02/2014, 01:06
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Como hacer para preguntar en un form

Hola,

Tengo un programa, el cual pregunto por un articulo me llama al siguiente programa que se llama consultarticulo.php y me muestra los datos. hasta aquí todo bien, lo que necesito es que en este programa hacer una pregunta: desea modificar alguno de los campos mostrados? y si es si que vaya a la posición donde se muestra y acepte el dato.
Código PHP:
Ver original
  1. <?php
  2.  
  3. include("conexion.php");
  4.  
  5. $nota = $_POST['nota'];
  6.  
  7. $consulta=("SELECT * FROM articulo WHERE  nota = '$nota'");
  8. $datos=mysql_query($consulta,$conexion);
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15. ?>
  16.  
  17.  
  18.  
  19. <html xmlns="http://www.w3.org/1999/xhtml">
  20.     <head>
  21.         <meta name="keywords" content="" />
  22.         <meta name="description" content="" />
  23.         <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
  24.        
  25.         <title>Lista Articulos</title>
  26.         <link href="css/paginacion.css" type="text/css" rel="stylesheet">
  27.         <link href="css/style.css" rel="stylesheet" type="text/css" />
  28.         <link href="css/menu.css" rel="stylesheet" type="text/css" />
  29.     </head>
  30.     <body>
  31.         <div id="bg">
  32.             <div id="outer">
  33.                 <div id="header">
  34.                     <div id="logo">
  35.                         <h1>
  36.                             <a href="index.html">volver</a>
  37.                         </h1>
  38.                     </div><br><br>
  39.                    
  40.                    
  41.                 <h2  style="font-weight:bold; color:#FF8E18; text-align:center; font-size: 36px;">Mantención  de Articulos</h2>
  42.              
  43.            
  44.            
  45.                  <form method='POST' action='actualizar.php' enctype='multipart/form-data'>
  46. <?php            while($row = mysql_fetch_assoc($datos))
  47.        
  48.        
  49.  {
  50.  ?>
  51.        
  52.          <table>
  53.             <tr>         
  54.                <td>
  55.                     * Codigo:
  56.                </td>
  57.                <td>
  58.                 <span style = "color:white; font-weight: bold;"><?php  echo $row['codigo'];?></span>
  59.                
  60.                </td>       
  61.             </tr>
  62.            
  63.             <tr>         
  64.               <td>
  65.                    *  Descripcion:
  66.                </td>
  67.                <td>  
  68.                     <span style = "color:white; font-weight: bold;"><?php  echo $row['descripcion'];?></span>
  69.                    
  70.                  
  71.                </td>    
  72.             </tr>
  73.            
  74.             <tr>         
  75.                <td>
  76.                    * Medidas ancho:
  77.                </td>
  78.                <td>
  79.                      <span style = "color:white; font-weight: bold;"><?php  echo $row['medancho'];?></span>
  80.                    
  81.                </td>   
  82.             </tr>
  83.            
  84.             <tr>         
  85.                <td>
  86.                    * Madidas alto:
  87.                </td>
  88.                <td>
  89.                          <span style = "color:white; font-weight: bold;"><?php  echo $row['medalto'];?></span>
  90.                        
  91.                </td>   
  92.             </tr>
  93.            
  94.            
  95.             <tr>         
  96.                <td>
  97.                    * Tela:
  98.                </td>
  99.                <td>
  100.                          <span style = "color:white; font-weight: bold;"><?php  echo $row['tela'];?></span>
  101.                        
  102.                </td>   
  103.             </tr>
  104.            
  105.            
  106.            
  107.            
  108.             <tr>         
  109.                <td>
  110.                    * Costo Proveedor:
  111.                </td>
  112.                <td>
  113.                          <span style = "color:white; font-weight: bold;"><?php  echo $row['costo'];?></span>
  114.                        
  115.                </td>   
  116.             </tr>
  117.            
  118.             <tr>         
  119.                <td>
  120.                    * P.V.P:
  121.                </td>
  122.               <td>
  123.                        <span style = "color:white; font-weight: bold;"><?php  echo $row['pvp'];?></span>
  124.                      
  125.                </td>
  126.                
  127.              </tr>
  128.            
  129.            
  130.              <tr>
  131.                <td>
  132.                    * Descuento:
  133.                </td>
  134.                <td>
  135.                          <span style = "color:white; font-weight: bold;"><?php  echo $row['descuento'];?></span>
  136.                        
  137.                </td>       
  138.             </tr>
  139.        
  140.            
  141.             <tr>         
  142.                <td>
  143.                    * Nota
  144.                </td>
  145.                <td>
  146.                          <span style = "color:white; font-weight: bold;"><?php  echo $row['nota'];?></span>
  147.                        
  148.                    
  149.                </td>       
  150.             </tr>
  151.           <tr>
  152.           <tr>       
  153.                <td>
  154.                    * Fotografia:
  155.                </td>
  156.                <td>
  157.                
  158.            
  159.                 <img src="<?php echo $row['fotografia'];?>" width="197" height="173" >
  160.            
  161.                </td>       
  162.             </tr>
  163.           <tr>
  164.          
  165.           <tr>
  166.              <td><br><br>
  167.                <input type="submit" name="submit" class="button" value="Modifica" />
  168.                <input type="reset"  class="button"/>
  169.                <a href="articulos.php" class="button">Volver</a>
  170.              </td>
  171.           </tr>
  172.          
  173.        </table>  
  174.        </form>
  175.  <?php
  176. }
  177. ?>   
  178.        
  179.     </form>
  180.  
  181.    
  182.                
  183.                
  184.     </body>
  185. </html>

No se donde poner la consulta y como hacer para que vaya a la posición que se indica.

Gracias y saludos
  #2 (permalink)  
Antiguo 24/02/2014, 06:59
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Como hacer para preguntar en un form

Cuando eliges un articulo haces lo siguiente:

Cliente->Elige articulo
Servidor->busca el articulo y lo mustra en una tabla.


Si ahora cliente dice que quiere modificar, luego servidor debe mostrar el articulo pero no en una tabla si no en un formulario, es decir lo que ahora muestras en <span>s dentro de celdas, muestralo dentro de <input>s en las mismas celdas. Una vez el cliente lo haya modificado deberas mandar los datos al servidor y guardarlos....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 24/02/2014, 08:29
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Como hacer para preguntar en un form

Gracias por responder,

Lo provaré y te digo
  #4 (permalink)  
Antiguo 25/02/2014, 01:37
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Como hacer para preguntar en un form

Hola,

He provado y funciona, pero quizás sepas si hay una forma más facil de hacerlo.
Dejare parte del codigo para que lo veas.
Por otra parte tengo un problema y es que cuando modifico en la parte que es texto solo me captura la primera palabra y el resto no dejo la parte en cuestión.

Código PHP:
Ver original
  1. <?php    $codigo=       $row['codigo'];
  2.                  $descripcion=  $row['descripcion'];
  3.               $medancho=     $row['medancho'];
  4.          $medalto=      $row['medalto'];
  5.          $tela=         $row['tela'];
  6.          $costo=        $row['costo'];
  7.          $pvp=          $row['pvp'];
  8.          $descuento=    $row['descuento'];
  9.          $nota=         $row['nota'];
  10.    
  11. ?>      
  12.  <tr>        
  13.                <td>
  14.                    * Nota
  15.                </td>
  16.                <td>
  17.                          <input type="text" name="nuevonota"   size="100" /> &nbsp;&nbsp;&nbsp;<?php  echo $row['nota'];?>
  18.                         <input type="hidden" name="nota" value =<?php  echo $row['nota'];?>>
  19.                
  20.                    
  21.                </td>       
  22.             </tr>

Ok y este es parte del programa actualizar

Código PHP:
Ver original
  1. <?php
  2. include "conexion.php";
  3.  
  4.  $codigo=       $_POST['codigo'];
  5.  $nuevocodigo=  $_POST['nuevocodigo'];
  6.  
  7.  $nota=         $_POST['nota'];
  8.  $nuevonota=  $_POST['nuevonota'];
  9.  
  10. if ($nuevocodigo==0){
  11.   $nuevocodigo=$codigo;
  12.  
  13. }
  14. if ($nuevonota==0){
  15.   $nuevonota=$nota;
  16. }
  17.  
  18.     $actualizar=mysql_query("UPDATE articulo SET codigo='".$nuevocodigo."', descripcion='".$nuevodescripcion."', medancho='".$nuevomedancho."', medalto='".$nuevomedalto."',
  19.     tela='".$nuevotela."', costo='".$nuevocosto."', pvp='".$nuevopvp."', descuento='".$nuevodescuento."', nota='".$nuevonota."'
  20.  
  21.     WHERE codigo='".$codigo."'", $conexion);
  22.    
  23.    
  24.    
  25.    
  26.  
  27. if ($actualizar)
  28. {
  29.    echo "
  30.   <html>
  31.       <head>
  32.            <meta http-equiv='REFRESH' content='0 ; url=index.html'>
  33.            <script>
  34.               alert ('Actualizada con exito!!!');
  35.            </script>
  36.         </head>
  37.     </html>
  38.     ";
  39. }  
  40. else
  41. {
  42.  echo "
  43.   <html>
  44.       <head>
  45.            <meta http-equiv='REFRESH' content='0 ; url=index.html'>
  46.            <script>
  47.               alert ('Error no se ha actualizado!!!');
  48.            </script>
  49.         </head>
  50.     </html>
  51.     ";
  52. }
  53.  
  54.  
  55. ?>

Ok, como digo todo lo hace bien el problema es que cuando se modifica el campo nota solo toma la primera palabra.

Gracias y saludos
  #5 (permalink)  
Antiguo 25/02/2014, 01:52
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Como hacer para preguntar en un form

Código HTML:
Ver original
  1. <input type="text" name="nuevonota"   size="100"  value="<?php  echo $row['nota'];?>">
  2.                         <input type="hidden" name="nota" value =<?php  echo $row['nota'];?>>

Si seria algo asi, quizas si mantienes el valor del registro anterior del lado servidor reducirías el trafico de datos, lo podrías guardar en la sessión y te ahorrarías los hidden....

Si los campos nuevoXXX tienen el valor antiguo, puedes condicionar el update a que el nuevo valor sea distinto del antiguo....

Finalmente si codigo es modificable no debería ser la clave principal.... si tienes otra, un id, pasala a un hidden y usala en el where..... si codigo es la clave principal no permitas que se modifique.

Cita:
el campo nota solo toma la primera palabra
No debería.... podria ser un problema de delimitadores pero parece que los tienes bien.... ojo si el texto puede contener apostrofes habria que escaparlos....

Antes de mysql_query haz:

Código PHP:
Ver original
  1. echo "UPDATE articulo SET codigo='".$nuevocodigo."', descripcion='".$nuevodescripcion."', medancho='".$nuevomedancho."', medalto='".$nuevomedalto."',
  2.    tela='".$nuevotela."', costo='".$nuevocosto."', pvp='".$nuevopvp."', descuento='".$nuevodescuento."', nota='".$nuevonota."'  WHERE codigo='".$codigo."'";

y verás la query que construye.... copiando/pegando podrás ejecutarla directamente en el servidor de bbdd para ver que errores pueda tener....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 25/02/2014 a las 01:59
  #6 (permalink)  
Antiguo 25/02/2014, 02:26
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Como hacer para preguntar en un form

Hola,

Antetodo agradecerte por tus consejos.
He probado a hacer lo que me has indicado

echo update y me arroja lo siguiente:

UPDATE articulo SET codigo='2007182', descripcion='Accesorios-cortina', medancho='0', medalto='0', tela='', costo='0.60', pvp='2.25', descuento='0.00', nota='Calotta' WHERE codigo='2007182'

hice lo que dijiste copie y pegue esto en el servidor no da error y lo actualiza.

Te dire que escribí en el campo que recive nuovonota Calotta caca y como puedes ver muestra solo Calotta

He puesto un echo para ver que recibe desde el otro programa y lo recibe bien osea Calotta caca


No se porqué corta la palabra...
  #7 (permalink)  
Antiguo 25/02/2014, 02:46
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Como hacer para preguntar en un form

Hola,

He puesto un echo para ver que recibe nota y aquí está el problema recibe cortada la palabra.
Código PHP:
Ver original
  1. $nota=         $_POST['nota'];
  2.  $nuevonota=  $_POST['nuevonota'];
  3.  
  4. echo $nota;
  5.  return;
El problema está en esta parte

Código PHP:
Ver original
  1. <input type="hidden" name="nota" value =<?php  echo $row['nota'];?>>

Sabes tu porqué?
  #8 (permalink)  
Antiguo 25/02/2014, 02:54
 
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 243
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Como hacer para preguntar en un form

OK,

Solucionado , Gracias por todo era lo siguiente:
Código PHP:
Ver original
  1. <input type="hidden" name="nota" value ="<?php  echo $row['nota'];?>">
Faltaban las comillas en value = "
  #9 (permalink)  
Antiguo 25/02/2014, 03:31
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Como hacer para preguntar en un form

Perfecto....

Cita:
el campo nota solo toma la primera palabra
Cita:
No debería.... podria ser un problema de delimitadores pero parece que los tienes bien.... ojo si el texto puede contener apostrofes habria que escaparlos....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: form, html, mysql, select, sql
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 18:52.