Foros del Web » Programando para Internet » PHP »

Formulario en partes

Estas en el tema de Formulario en partes en el foro de PHP en Foros del Web. Hola, buen día, necesito entregar este script hoy y tengo el siguiente problema... Necesito que el formulario siguiente me de primero los campos "vendedor", "fecha" ...
  #1 (permalink)  
Antiguo 05/03/2009, 10:27
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 2 meses
Puntos: 0
Pregunta Formulario en partes

Hola, buen día,

necesito entregar este script hoy y tengo el siguiente problema...

Necesito que el formulario siguiente me de primero los campos "vendedor", "fecha" y "nombre". el sistema comprueba si el campo "nombre" ya existe en caso de q existe le manda un mensaje que ya existe el registro, en caso de que no exista necesito que me mande los campos faltantes para ese registro, "direccion", "telefono", "email".. etc....

Quien puede ayudarme a arreglarlo??? PORFAVOR!!!
Porq no se ni por donde comenzar y lo necesito

Gracias en verdad por todo!

Código:
<?
include "conexion.php";
if (!isset($_GET["accion"])){ 
        echo"
        <html>
        <head><title>Guardar datos en la base</title></head>
        <body>
<h3>Guardar datos en la base</h3>
<form name=\"form1\" method=\"post\"
    action=\"guardar.php?accion=guardar\">
  <p>Vendedor:<br>
    <input type=\"text\" name=\"vendedor\">
  </p>
<p>Fecha:<br>
    <input type=\"text\" name=\"fecha\">
  </p>
<p>Nombre del Doctor:<br>
    <input type=\"text\" name=\"nombre\">
  </p>
  <p>Calle:<br>
    <input type=\"text\" name=\"calle\">
  </p>
<p>Numero Externo e Interno:<br>
    <input type=\"text\" name=\"numero\">
  </p>
<p>Colonia:<br>
    <input type=\"text\" name=\"colonia\">
  </p>
<p>Delegacion:<br>
    <input type=\"text\" name=\"delegacion\">
  </p>
  <p>Telefono:<br>
    <input type=\"text\" name=\"telefono\">
  </p>
<p>Correo Electronico:<br>
    <input type=\"text\" name=\"correo\">
  </p>
  <p>
    <input type=\"submit\" name=\"Submit\" value=\"Guardar Datos\">
  </p>
</form>
</body>
</html>";
}elseif($_GET["accion"]=="guardar"){
  include "conexion.php"; 
  $vendedor = $_POST['vendedor']; 
  $fecha = $_POST['fecha']; 
  $nombre = $_POST['nombre']; 
  $calle = $_POST['calle']; 
  $numero = $_POST['numero']; 
  $colonia = $_POST['colonia']; 
  $delegacion = $_POST['delegacion']; 
  $telefono = $_POST['telefono']; 
  $correo = $_POST['correo']; 
  $result=mysql_query("INSERT INTO doctores (vendedor,fecha,nombre,calle,numero,colonia,delegacion,telefono,correo)  
    VALUES ('.$vendedor.','.$fecha.','.$nombre.','.$calle.','.$numero.','.$colonia.','.$delegacion.','.$telefono.','.$correo.')",$conexion);
  echo" <html>
    <head></head>
    <body>
    <h3>Los datos han sido guardados</h3>
    </body>
    </html>";
}
include "cerrar_conexion.php";
?>
  #2 (permalink)  
Antiguo 05/03/2009, 10:38
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: AYUDA Formulario en partes URGENTE

Lo que quieres hacer se puede hacer de diferente manera, usando ajax o solo con PHP y Javacsript.
Por ejemplo, podrías validar la existencia del nombre en la tabla por medio de ajax, según el resultado, muestras los campos o no, y envias el mensaje.

Saludos

EDITADO:

O podrías hacerlo en dos partes, la primera página mostrará solo los 3 primeros campos que deseas, aquí le colocarás el botón de submit pero con el nombre Siguiente, esto dará la impresión de que faltan campos, este foemulario lo envias a una segunda página, en esta validas que exita o no el nombre, si existe, redireciona a la primera página, de no existir muestras los otros 3 campos en esa página en un nuevo formulario y los otros campos que se enviaron a esa página los colocas en input hidden, esto lo envias a una tercera página que es la que gusrdará los datos.

Suerte
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.

Última edición por the_web_saint; 05/03/2009 a las 10:47
  #3 (permalink)  
Antiguo 05/03/2009, 10:43
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Respuesta: AYUDA Formulario en partes URGENTE

Para hacer lo que necesitas, necesitas usar AJAX. Con el puedes enviar el parámetro que quieras para ser procesado (sin que se produzca un cambio de página). Según lo que devuelva la petición, podes enviar los parámetros que restan o mostrar un error.

Utilizando nada más que formularios, estoy casi seguro que no se puede hacer.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #4 (permalink)  
Antiguo 05/03/2009, 10:50
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: AYUDA Formulario en partes URGENTE

Si es posible hacerlo sin ajax, pero será con recarga de páginas.
Se valida contra la DB en la segunda página (La cual tiene el segundo form con los 3 campos que se mostrarán si no existe el user), si existe, se redirecciona a la primera página o form donde se introduce los 3 primeros campos, enviandole un mensaje de error. Si no existe el user, entonces se muestra los otros 3 campo y se guardan los primeros 3 valores en campos hidden para ser guardados en una tercera página.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #5 (permalink)  
Antiguo 05/03/2009, 10:52
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: AYUDA Formulario en partes URGENTE

Para comprobar si el campo "nombre" ya existe puedes hacerlo con una consulta antes del hacer tu insert a la base de datos:

Código PHP:
$sql "SELECT clave FROM doctores WHERE nombre='$nombre'";     
     
$result mysql_query($sql);
     if(
$row mysql_fetch_array($result))
     {
      
header ("Location: $redir?error_login=9");
      exit;     
     }
     else{
     
$result=mysql_query("INSERT INTO doctores (vendedor,fecha,nombre,calle,numero,colonia,delegacion,telefono,correo)  
    VALUES ('.$vendedor.','.$fecha.','.$nombre.','.$calle.','.$numero.','.$colonia.','.$delegacion.','.$telefono.','.$correo.')"
,$conexion);

En el código, si encuentra el campo "nombre" en la base de datos, redirecciona a un error, de lo contrario haces el insert.

header ("Location: $redir?error_login=1") es un archivo php que define los errores. Este archivo yo lo llamo desde el formulario de manera de que el mensaje "ya existe nombre" aparezca en el mismo formulario. La manera de insertarlo en el formulario sería:

Código PHP:
<tr>
    <td>
    <div align="center">    
    <?
         
// Mostrar error
         
include ("mensaje_error.inc.php");
         if (isset(
$_GET['error_login'])){
            
$error=$_GET['error_login'];
            echo 
"<font face='Verdana, Arial, Helvetica, sans-serif' size='2'color='#FF0000'>&nbsp;Error:$error_login_ms[$error]";
    }                   
     
?>
     </div>    
    </td>
  </tr>
y En la página donde haces el insert debes definir la variable $redir que es la página donde mostrará el mensaje de error (que muy probablemente sea la página anterior, donde tienes el formulario):

Código PHP:
$pag_referida=$url[0];
$redir=$pag_referida
Y el archivo mensaje_error.inc.php lo estructuras así:

Código PHP:
<?
// Mensajes de error.
$error_login_ms[0]=" El nombre ya existe";
.
.
.
?>
Espero haberte ayudado. Cualquier duda no tardes en comentar, sé que no soy muy bueno explicando... lo sé, así que no dudes en preguntar.

Saludos.

Última edición por p3rikl3s; 05/03/2009 a las 11:50
  #6 (permalink)  
Antiguo 05/03/2009, 11:08
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: AYUDA Formulario en partes URGENTE

Bueno a mi me parecio muy buena la explicación . Y buena la de declarar diferentes tipos de errores, es mucho mas ordenado.
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #7 (permalink)  
Antiguo 05/03/2009, 13:19
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Formulario en partes

Hola.

en el paso 2 me sale el siguiente error:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/sodein/public_html/ventas/registro/guardar.php on line 54

entonces al codigo:
Código:
<tr>
    <td>
    <div align="center">    
    <?
         // Mostrar error
         include ("mensaje_error.inc.php");
         if (isset($_GET['error_login'])){
            $error=$_GET['error_login'];
            echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='2'color='#FF0000'>&nbsp;Error:$error_login_ms[$error]";
    }                   
     ?>
     </div>    
    </td>
  </tr>
entonces al codigo le hago este cambio: ( de " a \" )
Código:
  <tr>
    <td>
    <div align=\"center\">    
    <?
         // Mostrar error
         include (\"mensaje_error.inc.php\");
         if (isset($_GET['error_login'])){
            $error=$_GET['error_login'];
            echo \"<font face='Verdana, Arial, Helvetica, sans-serif' size='2'color='#FF0000'>&nbsp;Error:$error_login_ms[$error]\";
    }                   
     ?>
     </div>    
    </td>
  </tr>
y me sale ahora este error:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/sodein/public_html/ventas/registro/guardar.php on line 58

Qu la linea 58 corresponde a esta:
Código:
         if (isset($_GET['error_login'])){
Y aunq a esa linea le cambie el ( ' por \' ) me sigue saliendo el error...

Q hago???

POR CIERTO MUCHAS GRACIAS!
  #8 (permalink)  
Antiguo 05/03/2009, 13:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Formulario en partes

No en todos lados debes escapar las comillas, por ejemplo, en el código HTML escaparlas está mal. También, al lado del echo, y en el include. ¿Para qué tratas de escaparlas en esos contextos?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 05/03/2009, 13:43
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Formulario en partes

Intenta usando las etiquetas <?php ?> en vez de <? ?>
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #10 (permalink)  
Antiguo 05/03/2009, 14:03
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Formulario en partes

Cita:
Iniciado por David el Grande Ver Mensaje
No en todos lados debes escapar las comillas, por ejemplo, en el código HTML escaparlas está mal. También, al lado del echo, y en el include. ¿Para qué tratas de escaparlas en esos contextos?
Lo que dice David el Grande es cierto, esto es muy importante. El código que publique es correcto, por lo tanto creo que el error debe estar unas lineas más arribas, quizas falto cerrar unas comillas, punto y coma, etc. Revisa o sino coloca todo el código completo para revisarlo.

Cita:
Intenta usando las etiquetas <?php ?> en vez de <? ?>
Esto tambien es de gran ayuda, hace que el código se vea mas ordenado. Tambien deberías considerar este consejo de the_web_saint.


Saludos.
  #11 (permalink)  
Antiguo 05/03/2009, 14:05
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Formulario en partes

lo edite sin escapar las comillas en echo y en include:

Código:
 <tr>
    <td>
    <div align=\"center\">    
    <?
         // Mostrar error
         include ("mensaje_error.inc.php");
         if (isset($_GET['error_login'])){
            $error=$_GET['error_login'];
            echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='2'color='#FF0000'>&nbsp;Error:$error_login_ms[$error]";
    }                   
     ?>
     </div>    
    </td>
  </tr>
y tambien coloque <?php?> en lugar de <? ?>

y me sale este error:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/sodein/public_html/ventas/registro/guardar2.php on line 58

que la linea 58 corresponde a:
Código:
         include ("mensaje_error.inc.php");
Que otra cosa debo editar?
  #12 (permalink)  
Antiguo 05/03/2009, 14:09
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Formulario en partes

Les pego el codigo completo de nuevo:

Código:
<?php
include "conexion.php";
if (!isset($_GET["accion"])){ 
        echo"
        <html>
        <head><title>Guardar datos en la base</title><style type=\"text/css\">
<!--
body,td,th {
	color: #FFFFFF;
}
-->
</style></head>
        <body bgcolor=\"#000000\">
 <center><table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
            <tr>
              <td height=\"71\"><img src=\"titulo.jpg\" width=\"500\" height=\"71\"></td>
            </tr>
            <tr>
              <td height=\"529\" background=\"fondo.jpg\">

<center>
<form name=\"form1\" method=\"post\"
    action=\"guardar.php?accion=guardar\">
  <p>Vendedor:<br>
    <input type=\"text\" name=\"vendedor\">
    <br />
    Fecha:<br>
    <input type=\"text\" name=\"fecha\">
    <br />
    Nombre del Doctor:<br>
    <input type=\"text\" name=\"nombre\">
    <br />
    Calle:<br>
    <input type=\"text\" name=\"calle\">
    <br />
    Numero Externo e Interno:<br>
    <input type=\"text\" name=\"numero\">
    <br />
    Colonia:<br>
    <input type=\"text\" name=\"colonia\">
    <br />
    Delegacion:<br>
    <input type=\"text\" name=\"delegacion\">
    <br />
    Telefono:<br>
    <input type=\"text\" name=\"telefono\">
    <br />
    Correo Electronico:<br>
    <input type=\"text\" name=\"correo\">
</p>
  <p>
  
  <tr>
    <td>
    <div align=\"center\">    
    <?
         // Mostrar error
         include ("mensaje_error.inc.php")
         if (isset($_GET['error_login'])){
            $error=$_GET['error_login'];
            echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='2'color='#FF0000'>&nbsp;Error:$error_login_ms[$error]";
    }                   
     ?>
     </div>    
    </td>
  </tr>
  
    <input type=\"submit\" name=\"Submit\" value=\"Guardar Datos\">
  </p>
</form>
</center>
</td>
</tr>
</center>
</body>
</html>";
}elseif($_GET["accion"]=="guardar"){
  include "conexion.php"; 
  $pag_referida = $url[0];
  $redir = $pag_referida;  
  $vendedor = $_POST['vendedor']; 
  $fecha = $_POST['fecha']; 
  $nombre = $_POST['nombre']; 
  $calle = $_POST['calle']; 
  $numero = $_POST['numero']; 
  $colonia = $_POST['colonia']; 
  $delegacion = $_POST['delegacion']; 
  $telefono = $_POST['telefono']; 
  $correo = $_POST['correo']; 
$sql = "SELECT clave FROM doctores WHERE nombre='$nombre'";     
     $result = mysql_query($sql);
     if($row = mysql_fetch_array($result))
     {
      header ("Location: $redir?error_login=9");
      exit;  
     }
     else{
     $result=mysql_query("INSERT INTO doctores (vendedor,fecha,nombre,calle,numero,colonia,delegacion,telefono,correo)  
    VALUES ('.$vendedor.','.$fecha.','.$nombre.','.$calle.','.$numero.','.$colonia.','.$delegacion.','.$telefono.','.$correo.')",$conexion);
};
  echo" <html>
        <head></head>
        <body bgcolor=\"#000000\">
 <center><table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
            <tr>
              <td height=\"71\"><img src=\"titulo.jpg\" width=\"500\" height=\"71\"></td>
            </tr>
            <tr>
              <td height=\"529\" background=\"fondo.jpg\">
<center>
  <p></p>
  <p></p>
  <p>LOS DATOS HAN SIDO AGREGADOS<br>
  </p>
</center>
</td>
</tr>
</center>
</body>
</html>";
}
include "cerrar_conexion.php";
?>
  #13 (permalink)  
Antiguo 05/03/2009, 14:23
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Formulario en partes

No haz cambiado las etiquetas php en ese trozo del código
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #14 (permalink)  
Antiguo 05/03/2009, 14:25
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Formulario en partes

Si, si esta el cambio
Código:
<?php
include "conexion.php";
if (!isset($_GET["accion"])){
...............
  #15 (permalink)  
Antiguo 05/03/2009, 14:29
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Formulario en partes

Mmm por cuestiones de tiempo - estoy en el trabajo y por eso pido disculpas - lo primero que se me ocurre es esto:

Código PHP:
<?php
include "conexion.php";
if (!isset(
$_GET["accion"])){ 
        echo
"
        <html>
        <head><title>Guardar datos en la base</title><style type=\"text/css\">
<!--
body,td,th {
    color: #FFFFFF;
}
-->
</style></head>
        <body bgcolor=\"#000000\">
 <center><table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
            <tr>
              <td height=\"71\"><img src=\"titulo.jpg\" width=\"500\" height=\"71\"></td>
            </tr>
            <tr>
              <td height=\"529\" background=\"fondo.jpg\">

<center>
<form name=\"form1\" method=\"post\"
    action=\"guardar.php?accion=guardar\">
  <p>Vendedor:<br>
    <input type=\"text\" name=\"vendedor\">
    <br />
    Fecha:<br>
    <input type=\"text\" name=\"fecha\">
    <br />
    Nombre del Doctor:<br>
    <input type=\"text\" name=\"nombre\">
    <br />
    Calle:<br>
    <input type=\"text\" name=\"calle\">
    <br />
    Numero Externo e Interno:<br>
    <input type=\"text\" name=\"numero\">
    <br />
    Colonia:<br>
    <input type=\"text\" name=\"colonia\">
    <br />
    Delegacion:<br>
    <input type=\"text\" name=\"delegacion\">
    <br />
    Telefono:<br>
    <input type=\"text\" name=\"telefono\">
    <br />
    Correo Electronico:<br>
    <input type=\"text\" name=\"correo\">
</p>
  <p>
  
  <tr>
    <td>
    <div align=\"center\"> "
;
      
         
// Mostrar error
         
include ("mensaje_error.inc.php");
         if (isset(
$_GET['error_login'])){
            
$error=$_GET['error_login'];
            echo 
"<font face='Verdana, Arial, Helvetica, sans-serif' size='2'color='#FF0000'>&nbsp;Error:$error_login_ms[$error]";
         }                   
?>
     </div>    
    </td>
  </tr>  
    <input type=\"submit\" name=\"Submit\" value=\"Guardar Datos\">
  </p>
</form>
</center>
</td>
</tr>
</center>
</body>
</html>

<?
}elseif($_GET["accion"]=="guardar"){
  include 
"conexion.php"
  
$pag_referida $url[0];
  
$redir $pag_referida;  
  
$vendedor $_POST['vendedor']; 
  
$fecha $_POST['fecha']; 
  
$nombre $_POST['nombre']; 
  
$calle $_POST['calle']; 
  
$numero $_POST['numero']; 
  
$colonia $_POST['colonia']; 
  
$delegacion $_POST['delegacion']; 
  
$telefono $_POST['telefono']; 
  
$correo $_POST['correo']; 
$sql "SELECT clave FROM doctores WHERE nombre='$nombre'";     
     
$result mysql_query($sql);
     if(
$row mysql_fetch_array($result))
     {
      
header ("Location: $redir?error_login=9");
      exit;  
     }
     else{
     
$result=mysql_query("INSERT INTO doctores (vendedor,fecha,nombre,calle,numero,colonia,delegacion,telefono,correo)  
    VALUES ('.$vendedor.','.$fecha.','.$nombre.','.$calle.','.$numero.','.$colonia.','.$delegacion.','.$telefono.','.$correo.')"
,$conexion);
};
  echo
" <html>
        <head></head>
        <body bgcolor=\"#000000\">
 <center><table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
            <tr>
              <td height=\"71\"><img src=\"titulo.jpg\" width=\"500\" height=\"71\"></td>
            </tr>
            <tr>
              <td height=\"529\" background=\"fondo.jpg\">
<center>
  <p></p>
  <p></p>
  <p>LOS DATOS HAN SIDO AGREGADOS<br>
  </p>
</center>
</td>
</tr>
</center>
</body>
</html>"
;
}
include 
"cerrar_conexion.php";
?>
Prueba así, cualquier cosa comenta.

Nota: Te recomiendo que trabajes más ordenado, eso hace que otros programadores puedan comprender tu código con facilidad y rapidez.
  #16 (permalink)  
Antiguo 05/03/2009, 14:33
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Formulario en partes

NO, no esta el cambio:
Código php:
Ver original
  1. ................
  2. <tr>
  3.     <td>
  4.     <div align=\"center\">    
  5.     <?
  6.          // Mostrar error
  7.          include ("mensaje_error.inc.php")
  8.          if (isset($_GET['error_login'])){
  9.             $error=$_GET['error_login'];
  10.             echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='2'color='#FF0000'>&nbsp;Error:$error_login_ms[$error]";
  11.     }                  
  12.      ?>
  13.      </div>    
  14.     </td>
  15.   </tr>
  16. ....................
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #17 (permalink)  
Antiguo 05/03/2009, 14:55
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Formulario en partes

Cita:
Iniciado por p3rikl3s Ver Mensaje
Mmm por cuestiones de tiempo - estoy en el trabajo y por eso pido disculpas - lo primero que se me ocurre es esto:
Hola!

Lo intente de la nueva forma que me planteaste, me sale el formulario pero al final me saca este error:

Parse error: syntax error, unexpected '.' in /home/sodein/public_html/ventas/registro/mensaje_error.inc.php on line 4


Y TAMPOCO ME MUESTRA EL BOTON DE ENVIO DE DATOS

Por cierto:
Que tan dificil es que existan dos botones uno para enviar los datos y el otro solamente para comprobar si existe el campo "nombre", creo que de esta forma me serviría más.
  #18 (permalink)  
Antiguo 05/03/2009, 15:08
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Formulario en partes

El problema lo tienes en el archivo mensaje_error.inc.php. Tienes que quitar los puntos:

Código PHP:
<?
// Mensajes de error.
$error_login_ms[0]=" El nombre ya existe";
?>
Saludos.
  #19 (permalink)  
Antiguo 05/03/2009, 16:48
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Formulario en partes

Ok, ya quedo todo programado, pero sigue guardandome los dos registros iguales.

Última edición por Erigobre; 05/03/2009 a las 17:16
  #20 (permalink)  
Antiguo 05/03/2009, 18:07
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Formulario en partes

Revisa donde guardas. Debes tener algo similar a esto:

Código PHP:
$sql "SELECT clave FROM doctores WHERE nombre='$nombre' ";     
     
$result mysql_query($sql);
     if(
$row mysql_fetch_array($result))
     {
      
header ("Location: $redir?error_login=1");
      exit;     
     }
     else
     {
      
mysql_query("INSERT INTO doctores (vendedor,fecha,nombre,calle,numero,colonia,delegacion,telefono,correo)  
    VALUES ('.$vendedor.','.$fecha.','.$nombre.','.$calle.','.$numero.','.$colonia.','.$delegacion.','.$telefono.','.$correo.')"
,$conexion);
      or die (
$error_ins);      
     }
       
mysql_free_result($result);     
       
mysql_close(); 
  #21 (permalink)  
Antiguo 05/03/2009, 18:15
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Formulario en partes

Cuando coloco el codigo me marca el siguiente error:

Parse error: syntax error, unexpected T_LOGICAL_OR in /home/sodein/public_html/ventas/registro/guardar2.php on line 105


es la línea de:
Código:
       or die ($error_ins);
  #22 (permalink)  
Antiguo 05/03/2009, 18:23
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Formulario en partes

Utiliza esta forma para guardar. Reemplaza la manera como tu guardas por esta (que es más facil):

Código PHP:
mysql_query("insert into doctores values ('$vendedor','$fecha','$nombre','$calle','$numero','$colonia','$telefono','$correo')") or die($error_ins); 

Eso si, tienes que colocar las variables a guardar en la misma posición como las tienes en la base de datos. Por ejemplo, si la tabla doctores el primer campo es vendedor entonces la primera variable debe ser $vendedor... Y asi con las demás

Saludos...
  #23 (permalink)  
Antiguo 05/03/2009, 18:51
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Formulario en partes

lo coloque con las especificaciones y aún no sirve :S

No sería más sencillo colocarlo en otro boton diferente al mismo de registro?


Saludos y muchas gracias por todo!
  #24 (permalink)  
Antiguo 05/03/2009, 19:52
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Formulario en partes

Si puede hacer con otro boton, pero seria el mismo proceso. Dime, que error te dio esta vez ? Y si puedes coloca el fragmento del código

Saludos...
  #25 (permalink)  
Antiguo 05/03/2009, 21:08
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Formulario en partes

No me marca error, pero me sigue guardando el nombre duplicado.

te paso el codigo entero de nuevo, saludos:

Código:
 <?
include "conexion.php";
if (!isset($_GET["accion"])){ 
        echo"
        <html>
        <head><title>Guardar datos en la base</title><style type=\"text/css\">
<!--
body,td,th {
	color: #FFFFFF;
}
-->
</style></head>
        <body bgcolor=\"#000000\">
 <center><table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
            <tr>
              <td height=\"71\"><img src=\"titulo.jpg\" width=\"500\" height=\"71\"></td>
            </tr>
            <tr>
              <td height=\"529\" background=\"fondo.jpg\">

<center>
<form name=\"form1\" method=\"post\"
    action=\"guardar.php?accion=guardar\">
  <p>Vendedor:<br>
    <input type=\"text\" name=\"vendedor\">
    <br />
    Fecha:<br>
    <input type=\"text\" name=\"fecha\">
    <br />
    Nombre del Doctor:<br>
    <input type=\"text\" name=\"nombre\">
    <br />
    Calle:<br>
    <input type=\"text\" name=\"calle\">
    <br />
    Numero Externo e Interno:<br>
    <input type=\"text\" name=\"numero\">
    <br />
    Colonia:<br>
    <input type=\"text\" name=\"colonia\">
    <br />
    Delegacion:<br>
    <input type=\"text\" name=\"delegacion\">
    <br />
    Telefono:<br>
    <input type=\"text\" name=\"telefono\">
    <br />
    Correo Electronico:<br>
    <input type=\"text\" name=\"correo\">
</p>
  <p>
  
    <input type=\"submit\" name=\"Submit\" value=\"Guardar Datos\">
  </p>
</form>
</center>
</td>
</tr>
</center>
</body>
</html>";
}elseif($_GET["accion"]=="guardar"){
  include "conexion.php"; 
  $pag_referida = $url[0];
  $redir = $pag_referida;  
  $vendedor = $_POST['vendedor']; 
  $fecha = $_POST['fecha']; 
  $nombre = $_POST['nombre']; 
  $calle = $_POST['calle']; 
  $numero = $_POST['numero']; 
  $colonia = $_POST['colonia']; 
  $delegacion = $_POST['delegacion']; 
  $telefono = $_POST['telefono']; 
  $correo = $_POST['correo']; 
     $sql = "SELECT nombre FROM doctores WHERE nombre='$nombre'";      
     $result = mysql_query($sql); 
     if(mysql_num_rows($result) > 0) 
     { 
      header ("Location: $redir?error_login=1"); 
      exit;   
     } 
     else{
     $result=mysql_query("INSERT INTO doctores (vendedor,fecha,nombre,calle,numero,colonia,delegacion,telefono,correo)  
    VALUES ('.$vendedor.','.$fecha.','.$nombre.','.$calle.','.$numero.','.$colonia.','.$delegacion.','.$telefono.','.$correo.')",$conexion);
};
  echo" <html>
        <head></head>
        <body bgcolor=\"#000000\">
 <center><table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
            <tr>
              <td height=\"71\"><img src=\"titulo.jpg\" width=\"500\" height=\"71\"></td>
            </tr>
            <tr>
              <td height=\"529\" background=\"fondo.jpg\">
<center>
  <p></p>
  <p></p>
  <p>LOS DATOS HAN SIDO AGREGADOS<br>

  </p>
</center>
</td>
</tr>
</center>
</body>
</html>";
}
include "cerrar_conexion.php";
?>
  #26 (permalink)  
Antiguo 05/03/2009, 21:57
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Formulario en partes

Bueno por lo que veo tienes un error en el método que usas para enviar los datos. En la declaración del formulario expresas que el método a usar es POST (...<form name=\"form1\" method=\"post\" action=\"guardar.php?accion=guardar\">...) , pero las variable acción la recibes por GET ( ... }elseif($_GET["accion"]=="guardar"){... ). Eso es un problema. Debes usar POST para todos los casos, porque sino la variable se pierde.

Revisa y nos comentas...

Saludos.
  #27 (permalink)  
Antiguo 11/03/2009, 17:24
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Formulario en partes

Hola, realice el cambio de formulario (de GET a POST) y me hace un reload cada vez q realiza la acción de guardar pero ahora no me guarda nada..... :S
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 16:14.