Foros del Web » Programando para Internet » PHP »

retornar variables al volver con el browser

Estas en el tema de retornar variables al volver con el browser en el foro de PHP en Foros del Web. Hola amigos del foro. Tengo la siguiente consulta. necesito que una ves que yo envio el formulario con sus datos respectivos y validados para que ...
  #1 (permalink)  
Antiguo 05/08/2008, 15:43
 
Fecha de Ingreso: marzo-2005
Mensajes: 156
Antigüedad: 19 años, 1 mes
Puntos: 0
retornar variables al volver con el browser

Hola amigos del foro.
Tengo la siguiente consulta. necesito que una ves que yo envio el formulario con sus datos respectivos y validados para que permita campos nulos, Pero si el registro de la base de datos ya se encuentra enviara un mesaje en cual yo debo volver atras en el formulario y revisar dichos datos. Esto quiere decir que una ves devuelto al formulario de registro los datos que ya han sido digitados en los input deben estar ahí.
A continuacion les dejo parte de mi codigo que actualmente cumple con el envio de los datos a la base de datos, pero si existe y yo deseo volver los datos ya no estan en los input.
<?php
if ($pasar==1)
{
echo"<body onload='init();'>\n";
if (!$txtrut)
{
echo "Debe ingresar valores par el rut del profesor. Vuelva atras con su browser e ingrese los datos.\n";
exit;
}
if (!$ciudad)
{
echo "Debe ingresar el nombre del grupo al que pertenese. Vuelva atras con su browser e ingrese los datos.\n";
exit;
}
if (!$txtapellidopaterno)
{
echo "Debe ingresar el apellido paterno del profesor Vuelva atras con su browser e ingrese los datos.\n";
exit;
}
$txtrut = $txtrut."-".$digito;
$sqlq = " INSERT INTO PROFESOR__PROF( PROF_RUT,
CIUD_CODIGO,
PROF_NOMBRE)
VALUES ('".$txtrut."',
".$ciudad.",
'".$txtapellidopaterno."')";
$ress=mysql_db_query("sisproed",$sqlq);
if (!$ress)
{
echo "<center><h2><strong><pre>No se pudo insertar en la base de datos, Vuelva atras con el browser</pre></strong></h2></center>\n<br>";
}
else
{
echo "<center><h2><strong><pre>El registo fue insertado en la base de datos</pre></strong></h2></center><br>";
}

else
{
echo"<form action='ingresar_profesor.php?pasar=1' method='post' enctype='multipart/form-data' name='form1'>\n";
echo "<center><h2><strong><pre>Agregar Profesor</pre></strong></h2></center><br><br>";
echo"<table border='0' width='60%' align='center' CELLPADDING = '0' CELLSPACING = '0'>\n";
echo"<tr>\n";
echo"<td width='33%' ><pre>Rut Profesor</pre></td>\n";
echo"<td width='34%' align='center' > <div align='left'>\n";
echo"<input name='txtrut' type='text' value='" . $_POST['campoTexto']. "' size='7' maxlength='8'>\n";
echo"<input name='digito' type='text' value='' size='1' maxlength='1'></td>";
echo"</div></td>\n";
echo"<td width='33%'><pre>Nombre Profesor</b></pre></td>\n";
echo"<td width='34%' align='center'> <div align='left'>\n";
echo"<input name='txtnombre' type='text' value='" . $_POST['campoTexto']. "' size='15' maxlength='30'>\n";
echo"</div></td>\n";
echo"<td ><font face='Arial, Times, serif' size='1'><strong>Ciudad</strong></font></td>\n";
$sql = "SELECT * FROM CIUDAD__CIUD";
$res = mysql_query($sql) or die("La consulta fall&oacute;: " . mysql_error());
$num=mysql_numrows($res);
echo"<td>\n";
echo"<select name='ciudad' id=''>\n";
echo "<option value='" . $_POST['campoTexto']. "'>(seleccione CIUDAD)</option>";
for ($i=0; $i<$num; $i++)
{
$CIUD_CODIGO=mysql_result($res,$i,"CIUD_CODIGO");
$CIUD_NOMBRE=mysql_result($res,$i,"CIUD_NOMBRE");
echo "<option value=$CIUD_CODIGO>$CIUD_NOMBRE</option>";
}
echo"</select></td>\n";
echo"<td width='33%'><pre>Apellido Paterno</pre></td>\n";
echo"<td width='34%' align='center'> <div align='left'>\n";
echo"<input name='txtapellidopaterno' type='text' value='' size='20' maxlength='50'>\n";
echo"</div></td>\n";
echo"<tr>\n";
echo"</table>\n";
echo"<center><input type='button' name='btnagregar' value='Agregar' onclick='validar1();'></center>\n";
echo"</form>\n";
echo"</body>\n";
echo"</html>\n";
}

?>

<script>
function validar()
{
rut = document.form1.txtrut.value;
digito = document.form1.digito.value;
rut_sin_digito=new Array(0,0,0,0,0,0,0,0);
constante= new Array(3,2,7,6,5,4,3,2);
sep_rut=document.form1.txtrut.value;
digito=document.form1.digito.value;
rut_sin_digito[0]=sep_rut.charAt(0);
rut_sin_digito[1]=sep_rut.charAt(1);
rut_sin_digito[2]=sep_rut.charAt(2);
rut_sin_digito[3]=sep_rut.charAt(3);
rut_sin_digito[4]=sep_rut.charAt(4);
rut_sin_digito[5]=sep_rut.charAt(5);
rut_sin_digito[6]=sep_rut.charAt(6);
rut_sin_digito[7]=sep_rut.charAt(7);
suma=0;

for(ind=0;ind<8;ind++)
{
suma = suma + (rut_sin_digito[ind]*constante[ind]);
}
resto = suma % 11;
digito_correcto = 11 - resto;

if (digito_correcto == 10)
{ digito_correcto = "k";
}
else if (digito_correcto == 11)
{ digito_correcto = 0;
}
if (digito_correcto == digito)
{
form1.submit();
}
else
{alert('Rut Incorrecto ');
}
}

</script>
  #2 (permalink)  
Antiguo 05/08/2008, 15:49
Avatar de Taldreakan  
Fecha de Ingreso: julio-2008
Mensajes: 128
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: retornar variables al volver con el browser

Puedes usar variables de sesion para guardar y recuperar los datos en el formulario.
  #3 (permalink)  
Antiguo 05/08/2008, 15:59
 
Fecha de Ingreso: marzo-2005
Mensajes: 156
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: retornar variables al volver con el browser

Hola.
disculpa, me podrias ayudar por medio de un ejemplo repecto a lo que me comentabas por favor. gracias
  #4 (permalink)  
Antiguo 05/08/2008, 16:16
Avatar de Taldreakan  
Fecha de Ingreso: julio-2008
Mensajes: 128
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: retornar variables al volver con el browser

Este seria tu formulario:

Código PHP:
<?
session_start
();  // Esta linea va al principi de tu pagina.
?>


<form action="procesa.php" method="post">
<?
$nombre_prof 
""// Usas una variable local
// Aqui preguntas si existe una variable de sesion
if (session_is_registered('nombre_prof'))
  {
?>
<p><font color="#009900">Debes revisar los datos.</font></p>
<?
  
}
?>
<input type="text" name="nombre_prof" value="<? echo $nombre_prof?>" />
<input type="submit" value="Enviar" />
</form>
Este seria tu archivo procesa.php

Código PHP:
<?
session_start
();  // Esta linea va al principi de tu pagina.

...
...
...

// Aqui haces las validaciones necesarias
if ($HTTP_POST_VARS['nombre_prof'] == ....)
{
  
$_SESSION['nombre_prof'] = $HTTP_POST_VARS['nombre_prof'];
  
$return_page "formulario.php"// Regresara al formulario
}
else
  
$return_page "bien.php"// Todo bien

header("Location: ".$return_page);
?>
Solo tienes que ajustarlo a tus necesidades... Bye.
  #5 (permalink)  
Antiguo 06/08/2008, 15:18
 
Fecha de Ingreso: marzo-2005
Mensajes: 156
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: retornar variables al volver con el browser

hola.
Bueno gracias por la ayuda que me planteaste, pero veo que esto funciona para 2 formularios uno que es el procesa los datos y el otro es donde los recupera. Esto por que lo probe en 2 formularios y me funco bien. Ahora yo lo deseo en solo una pagina pero no me funca, es decir no me muestra nada. mi consulta es ¿Se puede utilizar en una sola pagina como tengo planteado en la anterior o algo similar?
Una ves mas muchas gracias.
Adios
  #6 (permalink)  
Antiguo 06/08/2008, 16:20
Avatar de Taldreakan  
Fecha de Ingreso: julio-2008
Mensajes: 128
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: retornar variables al volver con el browser

Este codigo funciona con dos archivos y con un solo formulario.

El formulario envia los datos a un archivo procesa que recupera los datos y registra las variables de sesion y de (ser necesario) regresa al formulario de donde recibio los datos para ser verificados y/o corregidos.

Esta linea pregunta si existe la variable de sesion.
Código PHP:
if (session_is_registered('nombre_prof')) 
Esta linea pregunta recibes una variable por POST.
Código PHP:
if (isset($HTTP_POST_VARS['nombre_prof'])) 
Con esto puedes jugar y ejecutar el codigo SQL.

En lo particular revolver formulario con proceso y consulta a base de datos no me parece buena idea, pero de que se puede se puede.
  #7 (permalink)  
Antiguo 07/08/2008, 10:49
 
Fecha de Ingreso: marzo-2005
Mensajes: 156
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: retornar variables al volver con el browser

Hola.
Gracias nuevamente, pero sabes tu que probe con la información que tú me has dado paun con eso no me resulta. De todos modo te dejo el codigo para que los veas y me comentes. Estoy trabajando con php 4 y mysql 3.2.

<?php
session_start();
if ($HTTP_POST_VARS['txtrut'])
{
$_SESSION['txt'] = $HTTP_POST_VARS['txtrut'];
$return_page = "prueba.php";
}

else if ($HTTP_POST_VARS['ciudad'])
{
$_SESSION['nombre_prof'] = $HTTP_POST_VARS['ciudad'];
$return_page = "prueba.php";
}

else if ($HTTP_POST_VARS['txtnombre'])
{
$_SESSION['nombre_prof'] = $HTTP_POST_VARS['txtnombre'];
$return_page = "prueba.php";
}

else if ($HTTP_POST_VARS['txtapellidopaterno'])
{
$_SESSION['nombre_prof'] = $HTTP_POST_VARS['txtapellidopaterno'];
$return_page = "prueba.php";
}

else
{
if ($pasar==1)
{
$enlace = mysql_connect("localhost", "root", "")or die("No pudo conectarse : " . mysql_error());
mysql_select_db("sisproed") or die("No pudo seleccionarse la BD.");
$txtrut = $txtrut."-".$digito;
$sqlq = " INSERT INTO PROFESOR__PROF( PROF_RUT, CIUD_CODIGO, PROF_NOMBRE,PROF_APELLIDO_PATERNO)
VALUES ('".$txtrut."','".$ciudad."',
'".$txtnombre."','".$txtapellidopaterno."')";
$ress=mysql_db_query("sisproed",$sqlq);
if (!$ress)
{
echo "<center><h2><strong><pre>No se pudo insertar en la base de datos, Vuelva atras con el browser</pre></strong></h2></center>\n<br>";
}
else
{
echo "<center><h2><strong><pre>El registo fue insertado en la base de datos</pre></strong></h2></center><br>";
}
}
}
$txtrut="";
$txtnombre="";
$ciudad="";
$txtapellidopaterno="";
if (session_is_registered('txtrut'))
{
echo"<font color='#009900'>Debes revisar rut.</font></p>";
}

if (session_is_registered('txtnombre'))
{
echo"<font color='#009900'>Debes revisar nombre.</font></p>";
}

if (session_is_registered('ciudad'))
{
echo"<font color='#009900'>Debes revisar ciudad.</font></p>";
}

if (session_is_registered('txtapellidopaterno'))
{
echo"<font color='#009900'>Debes revisar apellidopaterno.</font></p>";
}

echo"<form action='prueba.php?pasar=1' method='post' enctype='multipart/form-data' name='form1'>\n";
echo "<center><h2><strong><pre>Agregar Profesor</pre></strong></h2></center><br><br>";
echo"<table border='0' width='60%' align='center' CELLPADDING = '0' CELLSPACING = '0'>\n";
echo"<tr>\n";
echo"<td width='33%' ><pre>Rut Profesor</pre></td>\n";
echo"<td width='34%' align='center' > <div align='left'>\n";
echo"<input name='txtrut' type='text' value='' size='7' maxlength='8'>\n";
echo"<input name='digito' type='text' value='' size='1' maxlength='1'></td>";
echo"</div></td>\n";
echo"</tr>";
echo"<tr>";
echo"<td width='33%'><pre>Nombre Profesor</b></pre></td>\n";
echo"<td width='34%' align='center'> <div align='left'>\n";
echo"<input name='txtnombre' type='text' value='$txtnombre' size='15' maxlength='30'>\n";
echo"</div></td>\n";
echo"</tr>";

echo"<tr>";
$enlace = mysql_connect("localhost", "root", "")or die("No pudo conectarse : " . mysql_error());
mysql_select_db("sisproed") or die("No pudo seleccionarse la BD.");
$sql1 = "SELECT ciud_nombre FROM CIUDAD__CIUD";
$res = mysql_query($sql1) or die("La consulta fall&oacute;: " . mysql_error());
$num=mysql_numrows($res);
echo "<td><pre>Ciudad </pre></td>";
echo "<td ><select name='ciudad' id='ciudad'>";
echo "<option value='ciudad'>(seleccione ciudad)</option>";
for ($i=0; $i<$num; $i++)
{
$CIUD_CODIGO=mysql_result($res,$i,"CIUD_CODIGO");
$CIUD_NOMBRE=mysql_result($res,$i,"CIUD_NOMBRE");
echo "<option value=$CIUD_CODIGO>$CIUD_NOMBRE</option>";
}
echo "</select></td>";
////////////////////////////////
echo "</tr>";
echo"<tr>";
echo"<td width='33%'><pre>Apellido Paterno</b></pre></td>\n";
echo"<td width='34%' align='center'> <div align='left'>\n";
echo"<input name='txtapellidopaterno' type='text' value='$txtapellidopaterno' size='15' maxlength='30'>\n";
echo"</div></td>\n";
echo"</tr>";

echo"</table>\n";
echo"<center><input type='submit' name='btnagregar' value='Agregar'></center>\n";
echo"</form>\n";
echo"</body>\n";
echo"</html>\n";

?>
  #8 (permalink)  
Antiguo 23/12/2008, 18:27
 
Fecha de Ingreso: diciembre-2008
Mensajes: 19
Antigüedad: 15 años, 4 meses
Puntos: 0
Sonrisa Respuesta: retornar variables al volver con el browser

Bueno a ver si me puedes entener, veo que pues todos dan su aporte y eso se merece un gran respeto a todos los usuario que vrindan o brindamos apoyo e intercambiamos conocimientos, ya que algun dia nos tocara aprender algo mas.

Bueno respecto al tema si no deseas usar SESSIONES o lo ves un poco complicado,
te sugiero q hagas esto.

Dentro de tu formulario, casi al final antes de cerrar el </form> crea un input oculto.


Código PHP:
<input type="hidden" name="formulario" id="formulario">
</
form

Luego pondrias algo asi:

Código PHP:
if(array_key_exists("formulario",$_POST)){    

$vParametro ="pnombre=$txtnombre&papellido=$txtapellidopaterno";


<------------- Esto te verifica que si al dar click en el boton enviar y pasar a tu prueba.php existe el formulario osea tu campo oculto y ahi dentro crear una variable llamada $vParametro, la cual dentro pondras parametros que seran = a tus variables que muestarn el nombre y el apellido de tu BD.

Esto quiere decir que cuando hagas POST osea cando presiones el boton que te lleva a prueba.php, se estara llevando tambien los valores de tus variables, osea el NOMBRE y APELLIDO.

ahora en

PRUEBA.PHP
=================

Ahora aqui tienes que recuperar los valores enviados y se recuperan co GET:

Código PHP:
if(isset($_GET["pnombre"])){
        
$vNombre=$_GET["pnombre"];
    }
if(isset(
$_GET["papellido"])){
        
$vApellido=$_GET["papellido"];
    }

$varParametros="?pnombre=$vNombre&papellido=$vApellido"

<----------- En $varParametros Aqui armas la misma estructura que en tu formualrio, para volver a mandar tus datos a tu formulario para que se muestren cuando regresas a el. Antecediendo el simbolo "?" ya que se concatenara con tu URL de retorno

Código PHP:
<a href="<?php echo "prueba.php$varParametros"?>" >RETORNAR</a>

Ojo que los parametros tienen que ser iguales tanto en tu FORMULARIO como en tu PRUEBA.PHP = "pnombre,papellido".

==============================
y como FINAL regresas a tu FORMULARIO y recuperas los Datos:

y ahora Recuperas los valores que enviaste:


Código PHP:
if(isset($_GET["pnombre"])){
        
$txtnombre=$_GET["pnombre"];
    }
if(isset(
$_GET["papellido"])){
        
$txtapellidopaterno=$_GET["papellido"];
    } 
date cuenta que puedes recuperar datos por GET y que tus variables aqui deben ser las variables que pintes en tu texto nombre y apellido.

Espero me hallan entendido.

Y si desean alguna aclaracion pueden hacerlo en mi pequeño foro
http://wazuu.foroactivo.es/foro/portal.php

y Espero que algun dia llege a ser tan popular como FOROSDELWEB, que es una gran web de intercambio de conocimientos y espero que salgan cada vez mas web como esta y asi informar cada vez mas a los usuarios.

Gracias a todos.
AyllonDark
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 14:14.