Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Como Valido esto :D!

Estas en el tema de Como Valido esto :D! en el foro de Frameworks JS en Foros del Web. [R]Hola ! mi problema es que tengo un formulario donde genero un upload... necesito implementar que este form valide que no exista otro ID igual ...
  #1 (permalink)  
Antiguo 17/07/2006, 13:50
Avatar de seik!  
Fecha de Ingreso: mayo-2006
Mensajes: 492
Antigüedad: 18 años, 5 meses
Puntos: 6
De acuerdo Como Valido esto :D!

[R]Hola !
mi problema es que tengo un formulario donde genero un upload... necesito implementar que este form valide que no exista otro ID igual en la base datos... Esto lo logro con una consulta a la base de datos... pero nose por que realiza la carga del upload primero antes de la validacion, entonces! cuando presiono aceptar y por ejemplo estoy subiendo un archivo de 10 mb tengo que esperar que termine para que me diga que el archivo (id) ya existia en los registros y pierdo demaciado tiempo... como puedo implementar esto en una validacion del form antes de que genere el upload¿?... la idea seria que me diga alert(ya existe registro) y no lo haga y listo :D

alguien podria ayudar :D

Gracias...
[/R]
__________________
sEIK! -Chile-
Analista Programador.
  #2 (permalink)  
Antiguo 17/07/2006, 14:00
 
Fecha de Ingreso: julio-2005
Mensajes: 127
Antigüedad: 19 años, 4 meses
Puntos: 0
La pregunta es ¿Quién debe definir el id?, el usuario o el sistema.

Por lo general debería se el sistema (tan simple como usar un timestamp o un campo autonumérico).
  #3 (permalink)  
Antiguo 17/07/2006, 14:03
Avatar de seik!  
Fecha de Ingreso: mayo-2006
Mensajes: 492
Antigüedad: 18 años, 5 meses
Puntos: 6
Negative!

Lamentablemente este importante dao esta en manos del usuario...
esa es mi problematica...
Alguna otra ideita por ahi :)?
__________________
sEIK! -Chile-
Analista Programador.
  #4 (permalink)  
Antiguo 17/07/2006, 14:15
 
Fecha de Ingreso: julio-2005
Mensajes: 127
Antigüedad: 19 años, 4 meses
Puntos: 0
bueno, en vista de que esa es tu situación puedes hacer un chequeo del id antes de hacer el upload.

Esto lo pùedes hacer de dos maneras, con un popup o con ajax. Ambas son bastante fáciles.

Avisame cual te llama más la atención y de ahí le damos
  #5 (permalink)  
Antiguo 17/07/2006, 14:25
Avatar de seik!  
Fecha de Ingreso: mayo-2006
Mensajes: 492
Antigüedad: 18 años, 5 meses
Puntos: 6
demosle AJAX

vamos con ajax
es bastante interesante :D
dime que hacer o donde leer o algun ejemplo y le damos :D ;)
__________________
sEIK! -Chile-
Analista Programador.
  #6 (permalink)  
Antiguo 17/07/2006, 15:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por seik!
vamos con ajax
es bastante interesante :D
dime que hacer o donde leer o algun ejemplo y le damos :D ;)
Puedes preguntar y ver las FAQ's del foro de Ajax que tenemos aquí; en forosdelweb.com (vaya .. me salió como promoción xD).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 17/07/2006, 15:24
 
Fecha de Ingreso: julio-2005
Mensajes: 127
Antigüedad: 19 años, 4 meses
Puntos: 0
Aquí te coloco el código, lo probé en firefox.

Código HTML:
 <script type="text/javascript">
function httpRequest() {
	var req = false;
	try {
	// para Firefox, Safari, IE7, etc.
	req = new XMLHttpRequest();
	} catch (e) {
		try {
		// IE últimas versiones.
		req = new ActiveXObject('MSXML2.XMLHTTP');
		} catch (e) {
			try {
			// IE primeras veriones.
			req = new ActiveXObject('Microsoft.XMLHTTP');
			} catch (e) {
			// No se puedo crear
			return false;
			}
		}
	}
	return req;
}

function validaId() {
	var idInput = document.getElementById("id");
	var peticion = httpRequest();
	if(peticion) {
		peticion.open("GET", "valida.php?id="+idInput.value, true);
		var r = peticion;
		peticion.onreadystatechange = function() {
			if (r.readyState == 4) {
				var v = document.getElementById("validar");
				v.innerHTML = peticion.responseText;
			}
		}
		peticion.send(null);
	} else alert("No se pudo realizar la revisión...");
	return false;
}
</script>
<div id="todo">
	Indica el id: <input type="text" name="id" id="id" />
	<a href="#" onclick="return validaId();">Validar el id</a>
	<div id="validar">ghfg</div>
</div> 
En resumidas cuentas te explico:
1) Al pulsar el link se llama a la función validaId()
Esta función lo que hace es obtener del cuadro de texto el id que indicó el usuario y se lo pasa por el método GET al script (valida.php) que valida el id, el mío nada más hacía:
Código HTML:
echo "hola ".$_GET['id'];
2) Eso es todo.

Lo interesante de esto (ajax) es la construcción del objeto xmlHttpRequest (solicitud HTTP) que te permite hacer peticiones al servidor sin necesidad de recargar la página, en este caso se hace una llamada a valida.php?id=#### dónde ### es el id indicado por el usuario:
Código:
var idInput = document.getElementById("id");
...
peticion.open("GET", "valida.php?id="+idInput.value, true);
(El tercer parámetro true significa que haces una petición asíncrona).

Por último, el manejo de la respuesta se hace con la siguiente asignación:
Código:
peticion.onreadystatechange = function() {
			if (r.readyState == 4) {
				var v = document.getElementById("validar");
				v.innerHTML = peticion.responseText;
			}
		}
La respuesta viene junto a un código (que no tiene nada que ver con los codigos HTTP), cuando el código es 4 quiere decir que la respuesta fue recibida, en dicho caso le asigno a al div con id "validar" el texto que me llegó en la respuesta.

Para que toda la mágia de ajax se desate es necesario enviar la solicitud:
Código HTML:
peticion.send(null);
Eso es muy básicamente lo que ajax te permite hacer... A este script le faltan hacer chequeos como por ejemplo que el campo tenga algo escrito, y que sea sólo numérico por ejemplo.

Saludos.
  #8 (permalink)  
Antiguo 17/07/2006, 15:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Bueno . ya que se fueron por el lado de "Ajax" .. procedo a mover el mensaje a dicho foro por si hay problemas.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 17/07/2006, 15:27
Avatar de seik!  
Fecha de Ingreso: mayo-2006
Mensajes: 492
Antigüedad: 18 años, 5 meses
Puntos: 6
Excelente =D

Muy bueno el ejemplo lo estuve leyendo y lo probare pero! mañana ya se acabo este dia y tbm es bueno descansar :D me voi a mi casita ...
mañana espero estes para discutir lo mas seguro alguna duda que tenga :)

PD: Cluster dedicate a Publicista xD! :D

Saludos.
__________________
sEIK! -Chile-
Analista Programador.
  #10 (permalink)  
Antiguo 17/07/2006, 15:55
 
Fecha de Ingreso: julio-2005
Mensajes: 127
Antigüedad: 19 años, 4 meses
Puntos: 0
Gracias Cluster, estoy muy de acuerdo ;)

seik! estamos en contacto
  #11 (permalink)  
Antiguo 18/07/2006, 07:53
Avatar de seik!  
Fecha de Ingreso: mayo-2006
Mensajes: 492
Antigüedad: 18 años, 5 meses
Puntos: 6
La verdad no entendi nada ! :D

jajajajajaja .... soy un novato T_T

no entendi nada :D
se supone que hago la consulta a la base datos pero no veo en ni un lao la conexion a ella... y no entendi nada la verdad :D
podrias ser un poko mas explicito para este noob xD!
__________________
sEIK! -Chile-
Analista Programador.
  #12 (permalink)  
Antiguo 18/07/2006, 18:30
 
Fecha de Ingreso: julio-2005
Mensajes: 127
Antigüedad: 19 años, 4 meses
Puntos: 0
Ah, pero eso es un problema de PHP. Postea de nuevo allá para dejar este en el foro de ajax
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 19:23.