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

duda con .ajax()

Estas en el tema de duda con .ajax() en el foro de Frameworks JS en Foros del Web. hola estoy practicando con ajax(). para saber todas las funcionabilidades y tengo esto Código HTML: $.ajax({ type: "POST", dataType: "html", url: "ajax-php/borra-registro-ajax.php", data: dataString, success: ...
  #1 (permalink)  
Antiguo 23/03/2012, 15:54
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 1 mes
Puntos: 8
duda con .ajax()

hola estoy practicando con ajax(). para saber todas las funcionabilidades y tengo esto

Código HTML:
$.ajax({
      
      type: "POST",
      dataType: "html",
      url: "ajax-php/borra-registro-ajax.php",
      data: dataString,
      success: function(msg) {
            
            alert( "Borrando el registro" );
          

      }, // end succes
      error: function( XMLHttpRequest, textStatus, errorThrown ) {
                   
                     alert("A ocurrido un Error\n Ponte en contacto con\n [email protected] \n\n Error:"+   XMLHttpRequest); return false;
      },
     
        complete: function(){
            alert("registro borrado correctamente");
            
        }// en complete
     }); // en $.ajax 
en el fichero borra-registro-ajax.php le hago salir un "Notice: Undefined index: id_borrar in ...ajax-php\borra-registro-ajax.php on line 21"

Pero el ajax no se me para y me ejecuta comple

y el complete tampoco va por que quiero que recargue la pagina con un "location.reload()" pero no lo hace
  #2 (permalink)  
Antiguo 24/03/2012, 07:07
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: duda con .ajax()

Le recuerdo que php se ejecuta del lado del servidor, debe depurar los errores alli, debido a que el xmlhttprequest (ajax) solo espera una respuesta, el notice que tiene es de php

Se supone que desde php debe de enviar una confirmacion y analizarla en el success, para ajax el complete solo significa que la peticion al server fue exitosa, mas no si el proceso realizado en el servidor fue exitoso, son 2 cosas completamente diferentes

Si pretendes hacer un reload, no tiene caso que uses ajax, porque el objetivo de la técnica es evitar el recargue de la página, la idea es modificar el DOM desde el success
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 24/03/2012, 09:20
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 1 mes
Puntos: 8
Respuesta: duda con .ajax()

Pero entonces como puedo controlar, por ejemplo si el registro se ha borrado?
o si el registro no se a hpoodido borrar por cualquier cosa...

esto lo tendría que poner en la funcion del succes o en el complete?

por que el error: es solo si la pagina devuelve un error 400 o 500 no?
  #4 (permalink)  
Antiguo 24/03/2012, 11:18
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 12 años, 7 meses
Puntos: 18
Respuesta: duda con .ajax()

mira!....eso de saber si se borro o no!..es una respuesta del php/mysql

mira cuando borras el registro en tu php haces de seguro un echo"Borrado"; pero o sea como saber si se borro o No ? O.o debes colocar esto luego q se ejecuta la consulta para borrar

if(mysql_affected_rows()<1){
echo "No se borro el registro";
}else{
echo "El registro se borro";
}

te recomiendo que busques comandos de mysql ya que como ves son utiles muy utiles, tambien por ejemplo existe el mysql_num_rows()
que ese es para saber el numero de filas consultadas

y el mysql_affected_rows es para saber cuantas filas de la bd fueron alteradas con la ultima interaccion que se hizo, y si se ejecuto la consulta correctamente o sea el cambio, entonces dira que 1 y si se ejecutaron varios cambios te dira que mas 1

bueno suerte espero haberte ayudado :)
  #5 (permalink)  
Antiguo 25/03/2012, 11:34
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 1 mes
Puntos: 8
Respuesta: duda con .ajax()

pero con el xmlhttprequest puedo controlar todo lo que me response el php no?

entonces puedo hacer que si responde Notici, fatal erro o alguna cosa por el estilo... me pinte una pantalla de error no?
  #6 (permalink)  
Antiguo 26/03/2012, 16:30
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 12 años, 7 meses
Puntos: 18
Respuesta: duda con .ajax()

Ok alli si es verdad que eso no se!, mira encontre esto en la pagina del jquery

$.ajax({
statusCode: {
404: function() {
alert("page not found");
}
}
});

lo de notice eso ya es PHP!, la cosa es que esos errores que dices son de php y "creo" que eso no se controla al menos con codigo asi como asi no...lo de los notice, puedes desactivarlo desde el php.ini, el ejemplo que te di es de un error si la pagina no se encuentra! error 404, y me imagino que de igual forma podras colocar los errores que quieras :D

http://api.jquery.com/jQuery.ajax/
  #7 (permalink)  
Antiguo 26/03/2012, 16:58
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 1 mes
Puntos: 8
Respuesta: duda con .ajax()

con el se puede pintar lo que responde el php no?

xmlhttprequest

entonces con un find() busco Notice y lo pinto pero no se como hacerlo?
  #8 (permalink)  
Antiguo 26/03/2012, 18:12
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 12 años, 7 meses
Puntos: 18
Respuesta: duda con .ajax()

pero ya va!...porq tanto interes con los notice? si los notice aparecen cuando algo esta como quien dice de mas! por ejemplo si inicias session_start() e incluyes un archivo que tambien tenga el session_start() este te saldra un notice que ya ha sido iniciado pero ignorado! :S

ademas hasta lo que tengo entendido, la mayoria o todos los servidores tienen deshabilitado los notice!
  #9 (permalink)  
Antiguo 26/03/2012, 20:52
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 1 mes
Puntos: 8
Respuesta: duda con .ajax()

Cita:
Iniciado por edward18_1 Ver Mensaje
pero ya va!...porq tanto interes con los notice? si los notice aparecen cuando algo esta como quien dice de mas! por ejemplo si inicias session_start() e incluyes un archivo que tambien tenga el session_start() este te saldra un notice que ya ha sido iniciado pero ignorado! :S

ademas hasta lo que tengo entendido, la mayoria o todos los servidores tienen deshabilitado los notice!

si que va pero yo queria una cosa mas completa para que si pongo "registro actualizado" me lo pinte en la paginas

o si por ejemplo se pasan unos valores incorrectos y el Query falla me salta un error...

se entiende?

Puse notice como poner "fatal error" o warning
  #10 (permalink)  
Antiguo 26/03/2012, 22:41
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 12 años, 7 meses
Puntos: 18
Respuesta: duda con .ajax()

mira...primero debes entender algo!...

cuando tienes un form!...y envias los datos sin el jquery! o el ajax como lo uses, y si por ejemplo un campo esta vacio, el php cuando procesa los datos te dira que hay un error y q el campo esta vacio, si se ingreso o no el registro en la base de datos, debes utilizar lo que te dije el mysql_affected_rows()

entonces todas estas respuestas te la da el php cierto? cuando envias un formulario

entonces que es lo que hace en este caso el ajax

envia los datos del formulario a la pagina a procesar y el ajax la respuesta que te dará sera la que el php dio, o sea si el php dice: el registro ha sido ingresado!..ps eso es lo que muestra el ajax, me entiendes? o sea el ajax es solo un puente entre el navegador web y el servidor o sea el contacta un archivo en el servidor le envia los datos, espera a que php lo procese, y luego el php le dira algo y sea lo que sea ajax te lo muestra eso es todo!

te pongo un ejemplo pero en otro sentido!...supongamos que le quieres enviar unos documentos a un amigo por alguna compañía de envíos ehh por ejemplo servientrega o DHL
entonces tu redactas el documento que le vas a enviar y todo...entonces lo llevas al servientrega o el DHL, "q en este caso seria el ajax".... entonces el se encarga de llevarle el documento a tu amigo...tu amigo lo recibio

ok ahora tu amigo lee el documento y supongamos que en algún lugar preguntabas tu...como estas?

y ps tu amigo al leer el documento responderá a la pregunta que le hiciste "el seria el PHP"

entonces pueden haber varios casos!...
1) que tu amigo no te responda a esa pregunta
2) que tu amigo te diga estoy bien
3) que tu amigo te diga estoy mal

entonces esas son respuestas relativas ps el colocara lo que quiera. entonces ya habiendo procesado la pregunta de hola como estas? el te enviara a ti nuevamente el documento..con la respuesta que te dio "esa respuesta es la que da el PHP luego de procesar lo que le envias"

entonces luego de q te lo envía...te llega a ti!....en tus manos cuando abras el documento..veras la respuesta que el te haya dado!

como bien habrás entendido el servicio de envio en este caso servientrega DHL..viene siendo el ajax...el solo hizo el envió y recibió nuevamente y mostró..eso es todo! como te fijas el ajax no controla si la respuesta del php fue un alert un notice o cualquier otra cosa, ya que el solo te envia lo que php le respondió :D

bueno espero que hayas entendido un poco mas como funciona esta maravillosa tecnología del ajax
  #11 (permalink)  
Antiguo 27/03/2012, 01:50
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: duda con .ajax()

@engonga
quizás este ejemplo te ayude a entenderlo

http://foros.emprear.com/php/demo-form-ajax-captcha/

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #12 (permalink)  
Antiguo 27/03/2012, 13:22
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 12 años, 7 meses
Puntos: 18
Respuesta: duda con .ajax()

Ya vi cual es tu bendito problema, es q tu callback del ajax, es un alert() jejeje

bueno te voy a pasar un codigo! q no es con alert() sino algo q se muestra y ps lo podras controlar con estilos y todo eso!..a ver te dejo el codigo, y te explico


Código Javascript:
Ver original
  1. $(document).ready(function(){
  2. $('#id_del_fromulario').submit(function() {
  3.   // Enviamos el formulario usando AJAX
  4.         $.ajax({
  5.        async: true,  
  6.             type: 'POST',
  7.             url: $(this).attr('action'),
  8.             data: $(this).serialize(),
  9.             // Mostramos un mensaje con la respuesta de PHP
  10.             success: function(data) {
  11.                 $('#id_del_div_de_la_respuesta').html(data);
  12.                
  13.             }
  14.         })        
  15.         return false;
  16.     });
  17. })

alli lo unico que tienes q reemplazar es #id_De_formulario, q claro alli colocas el id del formulario ok! al cual se le hace el submit! modificas el type, o sea POST o GET como quieras

y por ultimo #id_del_div_de_la_respuesta

ok en tu html debes crear un <div id="id_del_div_de_la_respuesta"></div>

alli se mostrara la respuesta q te devuelva el PHP!. y claro con CSS le aplicas los estilos a ese div, y entonces controlas como quien dice lo visual de lo q se muestra :)

Etiquetas: jquery
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 07:53.