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

"echo" no me funciona "die" sip, ¿?

Estas en el tema de "echo" no me funciona "die" sip, ¿? en el foro de Frameworks JS en Foros del Web. Hola antes k nada ^^. Veran llevo ya todo el santo dia dandole vuelta al mismo trozo de codigo y no mentra en la cabeza ...
  #1 (permalink)  
Antiguo 25/08/2009, 13:07
 
Fecha de Ingreso: agosto-2009
Mensajes: 15
Antigüedad: 14 años, 8 meses
Puntos: 0
"echo" no me funciona "die" sip, ¿?

Hola antes k nada ^^.

Veran llevo ya todo el santo dia dandole vuelta al mismo trozo de codigo y no mentra en la cabeza que es lo que anda mal, aver si pudieran echarme una manilla con el asunto.

El codigo es mas o menos tal que asi:

Código javascript:
Ver original
  1. function reservar(id,turno) {
  2.     $("#confirmacion").html('¿Desea reservar el Turno '+turno+'?');
  3.     $("#confirmacion").dialog({
  4.         bgiframe: true,
  5.         resizable: false,
  6.         height: 110,
  7.         minHeight: 100,
  8.         modal: true,
  9.         title: 'Reservas',
  10.         buttons: {
  11.             Ok: function() {
  12.                 $.post("reservas.php", {res:id}, function(data) {
  13.                     if (data.error) {
  14.                         $("#msg").fadeTo(200, 0.1, function() {
  15.                             $(this).removeClass().addClass("error").html(data.info).fadeTo(900, 1);
  16.                         });    
  17.                     } else {
  18.                         document.location='turnos/';   
  19.                     }
  20.                 }, "json");
  21.                 $(this).dialog('close');
  22.             },
  23.             Cancel: function() {
  24.                 $(this).dialog('close');
  25.             }
  26.         }
  27.     });
  28. }

Y en el lado del servidor:

Código php:
Ver original
  1. <?php
  2. ....
  3. // Como estes hay mas mensajes que pueden finalizar la ejecucion con die
  4. if ($database->connect_error)
  5.   die(json_encode(array('error' => TRUE, 'info' => 'No ha sido posible establecer la conexión con la base de datos')));
  6.  
  7. ....
  8. // Si todo ha ido bien
  9. echo json_encode(array('error' => FALSE));
  10. ....
  11. ?>

Pues bien la cosa esta en que si algo sale mal todo se ejecuta bien, y sale el mensaje de error en la pagina del navegador, sin embargo si todo sale bien el else del codigo javascript no se llega a ejecutar nunca. Para mas inri si cambio el echo por exit/die el else si funciona. Quizas sea una cosa muy sencilla y yo no me de cuenta como yo de ajax lo basico pero esque yo solo no he tenido narices de averiguiar el porque. Ademas que ando usando ajax, json,jquery para otras funciones de la pagina y no mestan dando problema ninguno.

En fin aver si pueden ayudarme. Y gracias miles por adelantado (ˆoˆ)
  #2 (permalink)  
Antiguo 26/08/2009, 09:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: "echo" no me funciona "die" sip, ¿?

Cuando usas die() el script termina ahí y no hay más datos que se envien, es probable que al usar echo nadamás se este enviando todavía más información al final del request y eso cause el error.

Te recomiendo usar la herramienta Firebug de Firefox para que veas exactamente que datos te esta regresando tu respuesta AJAX y así puedas hacer debug.

Saludos.
  #3 (permalink)  
Antiguo 26/08/2009, 12:09
 
Fecha de Ingreso: agosto-2009
Mensajes: 15
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: "echo" no me funciona "die" sip, ¿?

Pues si que era eso, he echos unos cambios en el codigo y he puesto el echo al final del codigo y ya me furula todo bien, la cuestion esque no he logrado averiguar que mas se devolvia pero nu me voy a poner a averiguarlo, ayer ya tuve suficiente con el comedero de coco ^^U.

Mil gracias GatorV (ˆoˆ)
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 08:05.