Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-09-2013
jecavi20 jecavi20 is offline
Registrado
NULL
 
Registrado: sep 2013
Posts: 5
Poder: 0
jecavi20 Va por buen camino
Question verificador de apodos

buenas tardes compañeros haber si me ayudan ahora con esta, gracias de antemano

tengo unos scripts de ingreso y comprobación de apodos que encontre en navegando en google con php ajax y msql que comprueba si ya existe el apodo o no, pero lo que pasa es que cuando le das ingresar o comprobar el te dice si esta registrado o no y deja el campo en blanco borrando lo que el usuario escribió en el input, yo quiero que no se borre sino que se quede escrito en el campo sin importar si ya esta registro o no

miren los codigo

archivo .html
Código:
<body>
			
			<div id="demo" style="width:600px;">
				<div id="demoDer">
					<input type="text" id="verificacion" onclick="nuevoEvento('verificacion')">
					<button type="button" id="botonVerificacion" onclick="nuevoEvento('verificacion')">Comprobar</button>
				</div>
				<div id="demoIzq">
					<input type="text" id="ingreso"onclick="nuevoEvento('ingreso')">
					<button type="button" id="botonIngreso" onclick="nuevoEvento('ingreso')">Ingresar</button>
				</div>
				<div class="mensaje" id="error"></div>
			</div>
			
</body>
archivo .php
Código PHP:

<?php 
include 'conexion.php'

function 
validaIngreso($valor

    
// Funcion utilizada para validar el dato a ingresar recibido por POST 
    
if(preg_match("/(^[a-zA-Z0-9.@ ]{4,40}$)/"$valor)) return TRUE
    else return 
FALSE


function 
verificaExistencia($apodo

    
/* Funcion encargada de verificar la existencia del apodo recibido en base de datos. 
    Devuelve TRUE si el apodo existe, FALSE de lo contrario */ 
    
$consulta=mysql_query("SELECT id FROM apodos WHERE apodo='$apodo'") or die(mysql_error()); 
    
$registro=mysql_fetch_row($consulta); 
     
    if(!empty(
$registro)) return TRUE
    else return 
FALSE


if(isset(
$_POST["ingreso"])) 

    
// Quito espacios en blanco al comienzo y fin de la cadena 
    
$valor=trim($_POST["ingreso"]); 
    
// Si el valor recibido es valido... 
    
if(validaIngreso($valor)) 
    { 
        
conectar(); 
         
        
$consulta=mysql_query("SELECT COUNT(*) FROM apodos") or die(mysql_error()); 
        
$registro=mysql_fetch_row($consulta); 

        
// Verifico que la base de datos no rebase los 600 registros (numero arbitrario) 
        
if($registro[0]>=600) { echo "Hay demasiados registros en la Base de Datos"; die(); } 
         
        
// Si el apodo ya existe en base de datos... 
        
if(verificaExistencia($valor)) echo "Tu apodo ya existe en la base de datos"
        else  
        { 
            
// Ingreso el nuevo apodo 
            
mysql_query("INSERT INTO apodos (apodo) VALUES ('$valor')") or die(mysql_error()); 
            echo 
"Tu apodo ha sido ingresado"
        } 
        
desconectar(); 
    } 

elseif(isset(
$_POST["verificacion"])) 

    
// Quito espacios en blanco al comienzo y fin de la cadena 
    
$valor=trim($_POST["verificacion"]); 
    
// Si el valor recibido es valido... 
    
if(validaIngreso($valor)) 
    { 
        
conectar(); 
        
// Si el apodo ya existe en base de datos... 
        
if(verificaExistencia($valor)) echo "Tu apodo ya existe en la base de datos"
        else echo 
"Apodo disponible"
        
desconectar(); 
    } 

?>
archivo .js
Código:
function nuevoAjax()
{ 
	/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
	lo que se puede copiar tal como esta aqui */
	var xmlhttp=false; 
	try 
	{ 
		// Creacion del objeto AJAX para navegadores no IE
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
	}
	catch(e)
	{ 
		try
		{ 
			// Creacion del objet AJAX para IE 
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		catch(E) { xmlhttp=false; }
	}
	if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); } 

	return xmlhttp; 
}

function eliminaEspacios(cadena)
{
	// Funcion equivalente a trim en PHP
	var x=0, y=cadena.length-1;
	while(cadena.charAt(x)==" ") x++;	
	while(cadena.charAt(y)==" ") y--;	
	return cadena.substr(x, y-x+1);
}

function validaIngreso(valor)
{
	/* Funcion encargada de validar lo ingresado por el usuario. Se devuelve TRUE en caso de ser 
	valido, FALSE en caso contrario */
	var reg=/(^[a-zA-Z0-9.@ ]{4,40}$)/;
	if(reg.test(valor)) return true;
	else return false;
}

function nuevoEvento(evento)
{
	// Obtengo el div donde se mostraran las advertencias y errores
	var divMensaje=document.getElementById("error");

	/* Dependiendo de cual sea el evento que ejecuto esta funcion (ingreso o verificacion) se setean
	distintas variables */	
	if(evento=="ingreso")
	{
		var input=document.getElementById("ingreso");
		// Boton presionado
		var boton=document.getElementById("botonIngreso");
		// Valor ingresado por el usuario
		var valor=input.value;
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="Ingresando...";
	}
	else
	{
		var input=document.getElementById("verificacion");
		// Boton presionado
		var boton=document.getElementById("botonVerificacion");
		// Valor ingresado por el usuario
		var valor=input.value;
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="Comprobando...";
	}
	// Elimino espacios por delante y detras de lo ingresado por el usuario
	valor=eliminaEspacios(valor);
	// Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
	if(!validaIngreso(valor)) 
	{
		divMensaje.innerHTML="El texto ingresado contiene caracteres o longitud inv&aacute;lida";
	}
	else
	{
		// Deshabilito inputs y botones para evitar dobles ingresos
		boton.disabled=true; input.disabled=true;
		input.value=textoAccion;
		
		// Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
		var ajax=nuevoAjax();
		ajax.open("POST", "comprobar_disponibilidad_de_apodo_proceso.php", true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax.send(evento+"="+valor);
		
		ajax.onreadystatechange=function()
		{
			if (ajax.readyState==4)
			{
				// Habilito nuevamente botones e inputs
				input.value="";
				boton.disabled=false; input.disabled=false;
				// Muestro el mensaje enviado desde el servidor
				divMensaje.innerHTML=ajax.responseText;
			}
		}
	}
}
todo funciona bien pero lo que no quiero es que borre los campos despues hacer las comprobaciones muchas gracias de antemano.
Responder Con Cita
  #2  
Antiguo 18-09-2013
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Para eso debes usar una variable que asigne el valor al campo, más o menos así:

Código PHP:
(...)
  <input type="text" id="nombre" name="nombre" value="<?php echo $ElNombre?>" />
(...)
El valor dado a $ElNombre es el que aparecerá en el campo.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pago Fácil, obtener dígito verificador DamianG Varios 3 25-09-2012 20:30:45
Rutina de digito verificador tulio Varios 4 09-08-2006 17:43:18


La franja horaria es GMT +2. Ahora son las 19:56:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi