Ver Mensaje Individual
  #10 (permalink)  
Antiguo 28/07/2013, 13:07
Avatar de Evair_Peterson
Evair_Peterson
 
Fecha de Ingreso: enero-2013
Mensajes: 14
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Desvío de retorno de validación PHP al value de un input?

Bueno... Tengo resuelto la problemilla que dejé en ese topico. Para solucionarla hice una mexcla de todo lo que me han dicho Vosk y edward1994, luego tuve que hacer algunos arreglos para que me funcionara bien en todo lo que necesito.


Probé con los codigos que me dejó en el edward1994 en su ultimo mensaje, una mexcla del javascript con el PHP, pero no sé por cual motivo no me funcionó la ejecución de la parte del JS. Pero bueno, segui probando de otras maneras...

La manera que me funcionó perfectamente fué la que me dijo Vosk, la de usar PHP en el interior del value del input. En esa parte le metí ese código para que funcionara bien:

Código HTML:
<input type="text" id="frmRegisterError" value="<?php if($frmRegisterError){echo $frmRegisterError;}?>" /> 
Yo estaba usando la validación en otro archivo porque creo ser mejor para la organización del codigo, y queda más simples para una posible modificación en el futuro. Pero si no me funcionaba asi, luego le cambié todo el codigo poniendolo todo en el encabezado de la pagina. Tan solo para probar si me iba funcionar de esa manera, hice el seguiente codigo:

Código PHP:
<?php
$frmRegisterError 
"";
if (!empty(
$_POST))
{
$frmRegisterError "ERRO PHP";}
?>
Y con eso me funcionó muy bien: me cambió el value de la input frmRegisterError como quisiera. Pero aún tenia una problemilla: esa input tenia visibility:hidden en una CSS. Aunque me cambiara el value de la input, no era mostraba el mensaje. Asi que hice un arreglo al archivo JS agregando una función más a el:

Código:
window.onload = function ()
{
	var frmRegisterError = document.getElementById("frmRegisterError").value;
	if (frmRegisterError != "")
	{
		frmRegisterValidateError ();
	}
}
Con eso luego que se carga nuevamente la pagina seguido del submit, se verifica el value del input, y si tiene cualquier valor diferente de "" se va ejecutar el codigo para que se muestre el contenido de frmRegisterError, que antes estaba invisible.

Pero aún no estaba en todo contento. Quisiera tener el codigo en un otro archivo para que se pueda cambiarlo de modo más fácil. Pensé en probar lo de las sessions como me dijo edward1994, pero luego me vino a la mente que iba volver algo más lento el sistema, ya que tendría que cargar la pagina con el codigo PHP para después volver a la pagina anterior. Pero me vino otra idea a la mente, le puse todo el codigo PHP en un archivo externo como quisiera todo el tiempo, pero para evitar eso de volver lento la carga de las paginas, le puse tan solo esa unica linea de codigo en el encabezado de la misma:

Código PHP:
<?php
include '/PHP/frmRegister.php';
?>
Con eso, aunque el codigo esté en un otro archivo, el sera cargado junto a la pagina principal y después sera como si fuera parte de ella, avitando con eso el retraso en la carga de la pagina despues del submit!!! Pues claro que ahora que sé que me funciona de esa manera, voy cambiar el codigo PHP por el de la validación...

En Brasil llamamos eso que hice de GAMBIARRAS, pero no sé como traducirlo en una unica palabra al español. La definición es: constituye un acto de solución improvisada .Pero que generalmente unfciona... O nooo.... Jejejeje

Agradezco mucho a Vosk y edward1994, pues realmente me fueron muy utiles toda la ayuda que me han dado. Espero un dia poder pagarlos.

Saludos desde Brasil, Evair.