Foros del Web » Programando para Internet » Javascript »

Validacion ajax

Estas en el tema de Validacion ajax en el foro de Javascript en Foros del Web. Hola, estoy intentando validar un formulario con ajax, en el formulario quiero que el número del ejemplar me lo valide en función de que si ...
  #1 (permalink)  
Antiguo 04/06/2013, 05:19
 
Fecha de Ingreso: mayo-2008
Mensajes: 11
Antigüedad: 15 años, 10 meses
Puntos: 0
Validacion ajax

Hola, estoy intentando validar un formulario con ajax, en el formulario quiero que el número del ejemplar me lo valide en función de que si el isbn esta en la base de datos o no, estoy intentándolo hacer de la siguiente forma, pero no me lo valida bien, creo que será en petición_http.send que no me envía bien los valores al comprueba.php ¿Sabéis porque puede ser?
anadir.php
<form action="" method="post">
<fieldset class="input" style="border: 0 none;">
<p>
<label for="isbn">ISBN</label><br />
<input id="isbn" type="text" name="isbn" alt="isbn" style="width:40%" />
<div id="mensaje"></div>
</p>
<p>
<label for="numero">Número del ejemplar</label><br />
<input id="numero" type="text" name="numero" onkeyup="compruebaCampo2()" alt="numero" style="width:40%" />
<div id="respuesta"></div>
</p>
<p>
<br /><input type="submit" value="Añadir" name="enviar" class="art-button" />
</p>
</fieldset>

</form>
-------------------------------
scriptNum.js
var READY_STATE_UNINITIALIZED=0;
var READY_STATE_LOADING=1;
var READY_STATE_LOADED=2;
var READY_STATE_INTERACTIVE=3;
var READY_STATE_COMPLETE=4;

var peticion_http;

function enviaPeticion2(url, metodo, funcion) {
peticion_http = inicializa_xhr2();
var num = "numero=" + document.getElementById("numero").value;
var is = "isbn=" + document.getElementById("isbn").value;
var query_string = "numero=" + encodeURIComponent(num) + "&isbn=" + encodeURIComponent(is);
if(peticion_http) {
peticion_http.onreadystatechange = funcion;
peticion_http.open(metodo, url, true);
peticion_http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
peticion_http.send(query_string);
}
}

function inicializa_xhr2() {
if(window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
}

function muestraResultado2() {
if(peticion_http.readyState == READY_STATE_COMPLETE) {
if(peticion_http.status == 200) {
if(peticion_http.responseText == '1')
{
document.getElementById("respuesta").innerHTML='<f ont color="#FF0000">¡Número ejemplar no disponible!</font>';
}
else
{
document.getElementById("respuesta").innerHTML='<f ont color="#009900">¡Número ejemplar disponible!</font>';
}
}
}
}

function compruebaCampo2() {
enviaPeticion2("comprobarCampoNum.php", "POST", muestraResultado2);
}
---------------------------------
comprobarCampoNum.php
if($_POST['numero']=='1' && $_POST['isbn']=='1'){
echo '1';
}else{
echo '0';
}
  #2 (permalink)  
Antiguo 04/06/2013, 08:03
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Validacion ajax

Lee este post
http://www.forosdelweb.com/f13/ajax-...o-get-1045379/

Y en particular esta respuesta
http://www.forosdelweb.com/f13/ajax-...9/#post4406365

Además me parece innecesario poner en variables los códigos de respuesta de READY_STATE cuando podés comperar directamente contra el valor numérico

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 05/06/2013, 04:34
 
Fecha de Ingreso: mayo-2008
Mensajes: 11
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Validacion ajax

Muchas gracias por la ayuda, ya lo solucioné
  #4 (permalink)  
Antiguo 05/06/2013, 07:40
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Validacion ajax

Cita:
Iniciado por emprear Ver Mensaje
Lee este post
http://www.forosdelweb.com/f13/ajax-...o-get-1045379/

Y en particular esta respuesta
http://www.forosdelweb.com/f13/ajax-...9/#post4406365

Además me parece innecesario poner en variables los códigos de respuesta de READY_STATE cuando podés comperar directamente contra el valor numérico

Saludos
Los enumeradores o tipos enumerados se inventaron, entre otras cosas, para mejorar enormemente la legibilidad del código. Y yo sí los recomiendo.
Aunque en JavaScript no los declararía como en C, si no más parecidos a JAVA:
Código Javascript:
Ver original
  1. var AJAX_READYSTATE= { UNINITIALIZED:0, LOADING:1, LOADED:2, INTERACTIVE:3, COMPLETE:4 };
  2. var AJAX_STATUS = { ERROR:404, OK:200 };

Luego en el código usar por ejemplo AJAX_READYSTATE.COMPLETE, AJAX_STATUS.OK

Última edición por marlanga; 05/06/2013 a las 07:48

Etiquetas: ajax, formulario, funcion, html, input, js, php, validacion
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 12:29.