Foros del Web » Programando para Internet » PHP »

Tratar Formulario en una Misma pagina

Estas en el tema de Tratar Formulario en una Misma pagina en el foro de PHP en Foros del Web. Tengo el siguiente Problema... Tengo un formulario en que contiene 3 campos: -Nombre de Usuario en Fotolog -Nombre Real -Correo el codigo del Formulario es ...
  #1 (permalink)  
Antiguo 27/05/2008, 14:16
Avatar de Bazooka  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile, Dominican Republic
Mensajes: 6
Antigüedad: 11 años, 7 meses
Puntos: 0
Tratar Formulario en una Misma pagina

Tengo el siguiente Problema...

Tengo un formulario en que contiene 3 campos:

-Nombre de Usuario en Fotolog
-Nombre Real
-Correo

el codigo del Formulario es el siguiente:

NOMBRE DEL ARCHIVO: FORM_FOTOLOG.PHP

Código:
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="599" height="46" align="center" valign="middle"><form action="add_fotolog.php" method="post" name="form1" id="form1">
      <label> <span class="Titulo_add_flog">Nombre de Usuario en Fotolog</span>
      <input name="nick" type="text" id="nick" size="15" maxlength="150" />
      <span class="Titulo_add_flog">Tu Nombre Real</span> </label>
      <label>
      <input name="due&ntilde;o" type="text" id="due&ntilde;o" size="15" maxlength="150" />
      </label>
      <label> <span class="Titulo_add_flog">E-Mail</span>
      <input name="email" type="text" id="email"  style="background-color:#333333 color:#333333" size="15" maxlength="150" border="none" /> 
      </label>
&nbsp;&nbsp;&nbsp;&nbsp;
<label>
<input type="submit" name="enviar" value="Enviar" />
</label>      
<br />
      <p>
      <label>
      <div align="center">
      </label>
    </form></td>
  </tr>
</table>


Y el Codigo que tengo para agregar los datos a la base de datos es el siguiente

NOMBRE DEL ARCHIVO "LECTOR" .. ADD_FOTOLOG.PHP

Código PHP:
<?

if ($enviar == Enviar){
    
// DATOS DE CONEXION DB
              // Definicion de Variables de Conexion a la base de Datos
    // Conectar a DB
    
$conectar mysql_connect($servidor,$usuario,$clave);
    
mysql_select_db($nombre_basedatos,$conectar);
    
$link "http://www.fotolog.com/".$nick;
    
$dueño $dueño."-".$email;    
    
$agregar "INSERT INTO fotolog (link,nick,dueño,clicks)"."VALUES ('$link','$nick','$dueño','0')";    
    
$result mysql_query($agregar);    
    if (
$agregar){        
        echo 
"Tu Fotolog Fue Agregado Correctamente";
    }
    else{
        echo 
"La Consulta SQL contiene Errores";
    }
}

else {
    include 
"form_fotolog.php";
}
    


?>


Lo que pasa es que cuando el usuario presiona "ENVIAR" me abre una pagina toda fea en blanco que dice "Tu Fotolog Fue Agregado Correctamente" el mensaje esta bien..pero lo que yo quiero es que no me abra una nueva pagina..sino que en la celda donde esta el formulario...me aparesca el mensaje..sin salirse de la pagina...


Se que es una consulta ultra basica..pero no he podido solucionarla..
  #2 (permalink)  
Antiguo 27/05/2008, 16:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: Tratar Formulario en una Misma pagina

weno, para eso necesitas consultar Ajax... si kieres ke no se recarge la pagina, ve al foro adecuado.... suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 27/05/2008, 16:30
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 12 años, 7 meses
Puntos: 59
Respuesta: Tratar Formulario en una Misma pagina

Ajax sería una muy buena opción, y muy elegante.

Si no quieres hacerlo con ajax, puedes hacerlo en la misma página de la siguiente forma:

Código PHP:
<form action="<?php $_SERVER['PHP_SELF'?>" method="post" name="form1" id="form1">
Y lo que hasta ahora has tenido en un segundo archivo, lo pones dentro del mismo, lo que haces es procesar el formulario en la misma página.

Hazlo y lo muestras, ya que se que te saldrán algunos warnings, pero son fáciles de tratar.

No te pongo la solución completa porque no se si deseas implementarla.

Saludos.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #4 (permalink)  
Antiguo 27/05/2008, 16:32
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.650
Antigüedad: 11 años, 10 meses
Puntos: 336
Respuesta: Tratar Formulario en una Misma pagina

cambia esto

Código PHP:
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="599" height="46" align="center" valign="middle">
<?php echo $_GET[m]; ?>
<form action="add_fotolog.php" method="post" name="form1" id="form1">
      <label> <span class="Titulo_add_flog">Nombre de Usuario en Fotolog</span>
      <input name="nick" type="text" id="nick" size="15" maxlength="150" />
      <span class="Titulo_add_flog">Tu Nombre Real</span> </label>
      <label>
      <input name="due&ntilde;o" type="text" id="due&ntilde;o" size="15" maxlength="150" />
      </label>
      <label> <span class="Titulo_add_flog">E-Mail</span>
      <input name="email" type="text" id="email"  style="background-color:#333333 color:#333333" size="15" maxlength="150" border="none" /> 
      </label>
&nbsp;&nbsp;&nbsp;&nbsp;
<label>
<input type="submit" name="enviar" value="Enviar" />
</label>      
<br />
      <p>
      <label>
      <div align="center">
      </label>
    </form></td>
  </tr>
</table>
Código PHP:
<?
if ($enviar == Enviar){
    
// DATOS DE CONEXION DB
              // Definicion de Variables de Conexion a la base de Datos
    // Conectar a DB
    
$conectar mysql_connect($servidor,$usuario,$clave);
    
mysql_select_db($nombre_basedatos,$conectar);
    
$link "http://www.fotolog.com/".$nick;
    
$dueño $dueño."-".$email;    
    
$agregar "INSERT INTO fotolog (link,nick,dueño,clicks)"."VALUES ('$link','$nick','$dueño','0')";    
    
$result mysql_query($agregar);    
    if (
$agregar){        
        
header("form_fotolog.php?m=Tu Fotolog Fue Agregado Correctamente");
    }
    else{
        
header("form_fotolog.php?m=La Consulta SQL contiene Errores");
    }
}

else {
    
header("form_fotolog.php?m=ERROR 0001");
}
?>
  #5 (permalink)  
Antiguo 27/05/2008, 16:33
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.650
Antigüedad: 11 años, 10 meses
Puntos: 336
Respuesta: Tratar Formulario en una Misma pagina

si, lo que dice lucasan es lo mejor n__n
  #6 (permalink)  
Antiguo 28/05/2008, 09:36
Avatar de Bazooka  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile, Dominican Republic
Mensajes: 6
Antigüedad: 11 años, 7 meses
Puntos: 0
Tratar Formulario en una Misma pagina

Lo que pasa lucas..es que no se nada sobre Ajax...recien estoy empezando con PHP...asi que se me hace un poco mas dificil implementar una solucion asi...

Con respecto a la solucion en PHP que me diste...Agregue el comando que me diste...pero lo que ocurrio fue que se repitio infinitas veces el formulario...lo que termino en un cierre del navegador por mi parte..
  #7 (permalink)  
Antiguo 28/05/2008, 09:47
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 12 años, 7 meses
Puntos: 59
Respuesta: Tratar Formulario en una Misma pagina

Muestra el código de como lo hiciste, debes tener algun bucle mal hecho.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #8 (permalink)  
Antiguo 28/05/2008, 10:26
Avatar de Bazooka  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile, Dominican Republic
Mensajes: 6
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Tratar Formulario en una Misma pagina

El Codigo me Quedo Asi.. :

Código PHP:

<table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="599" height="46" align="center" valign="middle"><form action="<?php $_SERVER['PHP_SELF'?>" method="post" name="form1" id="form1">
      <label> <span class="Titulo_add_flog">Nombre de Usuario en Fotolog</span>
      <input name="nick" type="text" id="nick" size="15" maxlength="150" />
      <span class="Titulo_add_flog">Tu Nombre Real</span> </label>
      <label>
      <input name="due&ntilde;o" type="text" id="due&ntilde;o" size="15" maxlength="150" />
      </label>
      <label> <span class="Titulo_add_flog">E-Mail</span>
      <input name="email" type="text" id="email"  style="background-color:#333333 color:#333333" size="15" maxlength="150" border="none" /> 
      </label>
&nbsp;&nbsp;&nbsp;&nbsp;
<label>
<input type="submit" name="enviar" value="Enviar" />
</label>      
<br />
      <p>
      <label>
      <div align="center">
      </label>
    </form></td>
  </tr>
</table>

<?

if ($enviar == Enviar){
    
// DATOS DE CONEXION DB
        // Conectar a DB
    
$conectar mysql_connect($servidor,$usuario,$clave);
    
mysql_select_db($nombre_basedatos,$conectar);
    
$link "http://www.fotolog.com/".$nick;
    
$dueño $dueño."-".$email;    
    
$agregar "INSERT INTO fotolog (link,nick,dueño,clicks)"."VALUES ('$link','$nick','$dueño','0')";    
    
$result mysql_query($agregar);    
    if (
$agregar){        
        echo 
"Tu Fotolog Fue Agregado Correctamente";
    }
    else{
        echo 
"La Consulta SQL contiene Errores";
    }
}

else {
    include 
"form_fotolog.php";
}
    


?>

Todo en Un Solo Archivo...
  #9 (permalink)  
Antiguo 28/05/2008, 11:27
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 12 años, 7 meses
Puntos: 59
Respuesta: Tratar Formulario en una Misma pagina

Varias cosas.

La primera, no estas tomando los datos que vienen del formulario.

Lo debes hacer así:

Código PHP:
$nick $_POST['nick']; 
Donde: $nick es la variable donde guardas el dato
$_POST['nick'] recibe el dato enviado por post.

Así deberás hacer con cada campo.

Segundo, no uses campos con caracteres extendidos, como la ñ o tildes, en el campo dueño es preferible poner dueno, porque te va a generar problemas.

Tercero, ¿que quieres hacer con ese if, no le ncuentro sentido.

Código PHP:
if ($enviar == Enviar
Mira lo que te digo y nos cuentas, sería mas facil si te lo hago, pero es bueno que aprendas a hacerlo, así he aprendido mucho aca en el foro, soy un novato aun

Para entender mejor esto deberías leer acerca de pasar datos por POST y por GET.

Saludos.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
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:03.