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

respuesta AJAX

Estas en el tema de respuesta AJAX en el foro de Frameworks JS en Foros del Web. Hola tengo 1 código en AJAX q llama a un .php AJAX llama al PHP ............... .................... if (ajax.readyState==4) { si se cumple una condición ...
  #1 (permalink)  
Antiguo 02/08/2010, 17:44
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
respuesta AJAX

Hola tengo 1 código en AJAX q llama a un .php

AJAX
llama al PHP
...............
....................
if (ajax.readyState==4)
{

si se cumple una condición (1) que saque un mensaje: "insertado correctamente",
sino, otro mensaje diferente: "no se insertó"
}

PHP
insert en la base de datos si se cumple una condición
sino... no inserta

desde aquí se debería devolver alguna variable(1) o algo para que al volver a AJAX saque uno u otro mensaje.

alguien tiene alguna idea?
  #2 (permalink)  
Antiguo 03/08/2010, 06:01
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: respuesta AJAX

Hola

A ver si ayuda esto
Código Javascript:
Ver original
  1. else if (ajax.readyState==4){
  2. if(ajax.status==200){  
  3. if (ajax.responseText.length == 0 || ajax.responseText == null || ajax.responseText == 'undefined') {
  4. elemento.innerHTML = 'no insertado';
  5. } else {
  6. elemento.innerHTML = 'insertado';
  7. }
  8. }
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 03/08/2010, 10:55
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: respuesta AJAX

estoy probándolo y no me sale. exactamente q hace? el status 200 para q sirve?

en el php se inserta o no el registro dependiendo de una condición. podría forzar en el php el ajax.responseText para q sea "" ó 0 y q salga "no insertado? o en caso contrario "insertado"?

dicho de otra forma... puedo devolver desde el php (donde se ejecuta el insert) alguna variable al .js para ahí poder validarla?

PHP
llama al .js

JS
llama al PHP QUE INSERTA
controla el ajax.readyState==4...

PHP QUE INSERTA
insert
devuelve variable al JS ¿se puede?
  #4 (permalink)  
Antiguo 03/08/2010, 12:52
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: respuesta AJAX

Hola

Cita:
Iniciado por humanista Ver Mensaje
estoy probándolo y no me sale. exactamente q hace? el status 200 para q sirve?
Con respecto al status
Por otro lado ¿qué hace? Evalua la cadena que se recibe, en caso de ser vacía, nula o indefinida, levanta un alerta, en caso contrario otro alerta
Cita:
Iniciado por humanista Ver Mensaje
en el php se inserta o no el registro dependiendo de una condición. podría forzar en el php el ajax.responseText para q sea "" ó 0 y q salga "no insertado? o en caso contrario "insertado"?
Esa es la idea desde un principio

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 03/08/2010, 14:25
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: respuesta AJAX

ok pero q hace q devuelva un valor u otro? es decir q hace q ajax.responseText.length devuelva 0 (cero), "" o undefinied, o q devuelva otro valor distinto de éstos?
  #6 (permalink)  
Antiguo 03/08/2010, 15:01
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: respuesta AJAX

Hola

ResponseText no revuelve nada, al contrario recibe. Solo has de enviar
Cita:
echo ""; o ninguna respuesta
pero te estás complicando. Si todo el proceso de inserción acabó con éxito, envía echo "final exitoso" de este modo se levantará el alerta insertado

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 04/08/2010, 04:13
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: respuesta AJAX

ok, con tu idea lo he solucionado. no sé pq no me coge:

if (ajax.responseText.length == 0 || ajax.responseText == null || ajax.responseText == 'undefined')

lo q he hecho es devolver echo "0" para no insertado y "1" para insertado. así sí me va, no sé pq no de la otra forma pq pruebo a hacer un alert y sí q me sale blancos o lo que le ponga. extraño... es decir el if sólo coge valores numéricos, q raro...

en cualquier caso, y como cultura general, no se puede hacer de una forma más ortodoxa? es decir con devolviendo variables o algo así? es por mejorar el código, graciasss

Última edición por humanista; 04/08/2010 a las 04:32
  #8 (permalink)  
Antiguo 04/08/2010, 05:34
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: respuesta AJAX

Hola

Veamos en el PHP, podrías hacer algo como
Código PHP:
Ver original
  1. <?php
  2. if (.........) {
  3. $respuesta = 'alert("insertado");';
  4. echo $respuesta;
  5. } else {
  6. $respuesta = 'alert("no insertado");';
  7. echo $respuesta;
  8. }
  9. ?>
Y en el js al recibir la respuesta, usas la función eval()
Código Javascript:
Ver original
  1. if(ajax.status==200){          
  2. var valores = ajax.responseText;
  3. eval(valores);
  4. }
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #9 (permalink)  
Antiguo 05/08/2010, 08:50
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: respuesta AJAX

bueno, al final acabas haciendo tb un echo, es decir no cambia nada. gracias de todas formas
  #10 (permalink)  
Antiguo 05/08/2010, 12:30
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: respuesta AJAX

Hola

Cita:
Iniciado por humanista Ver Mensaje
bueno, al final acabas haciendo tb un echo, es decir no cambia nada. gracias de todas formas
Para el caso que te ocupa, no hay otra manera mas que usar echo para enviar la variante. En cuanto a que no cambia nada, no es así. Hay un cambio sustancial, ya no tienes que evaluar la respuesta con la partícula

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Etiquetas: ajax, respuesta
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:55.