Foros del Web » Programando para Internet » Jquery »

Problema con cuadro de dialogo en jquery

Estas en el tema de Problema con cuadro de dialogo en jquery en el foro de Jquery en Foros del Web. Buen día, Hola lo siguiente espara saber si me pueden ayudar con esto: Tengo un script en jquery que primero valida unos campos que no ...
  #1 (permalink)  
Antiguo 04/02/2011, 08:44
 
Fecha de Ingreso: enero-2011
Ubicación: Bogotá
Mensajes: 9
Antigüedad: 13 años, 10 meses
Puntos: 0
Problema con cuadro de dialogo en jquery

Buen día,

Hola lo siguiente espara saber si me pueden ayudar con esto:

Tengo un script en jquery que primero valida unos campos que no esten vacios despues de esto muestra un dialogo de confirmacion con jquery UI si el usuario cancela no hace nada peri si acepte se supone que deberia mandar los datos a una pagina php guardar los datos y devolverme un mensaje que se guardaron los datos pero no me muestra dicho msj, el siguiente es el codigo en jquery:

Código:
var x;
x = $(document);
x.ready(iniciarEventos);

function iniciarEventos()
{
    x = $("#frmCrarNoticia");
    x.validate({
    errorLabelContainer: "#messageBox",
    wrapper: "li",
    submitHandler: validarDatos
    });

    x = $("#txtAsunto");
    x.rules("add",{
        required: true,
   	messages: {
            required: "Ingresa un Asunto"
        }
    });

    x = $("#txtComentario");
    x.rules("add",{
        required: true,
 	messages: {
            required: "Ingresa un Comentario"
        }
    });

    x = $("#txtFechaVigencia");
    x.rules("add",{
        required: true,
 	messages: {
            required: "Ingresa una fecha para la vigencia de la noticia"
        }
    });

    x = $("#txtFechaVigencia");
    x.datepicker($.datepicker.regional['es']);
    x.datepicker( "option", "appendText", '(dd-mm-yyyy)' );
    x.datepicker( "option", "dateFormat", "yy-mm-dd" );
    x.datepicker( "option", "showAnim", "fold" );
  
}

function validarDatos()
{
    var x =$("#txtAsunto");
    var y =$("#txtComentario");
    if(x.attr("value")!="" && y.attr("value")!="")
    {
        v=$("#txtFechaVigencia");
        w=$("#txtComentario");
        x=$("#txtUsuarioId");
        y=$("#txtConjuntoId");
        z=$("#txtAsunto");

        var texto = $('<div><p>Esta seguro de publicar la noticia</p></div>');

        $(texto).dialog({
           modal: true,
           title: "Publicar Noticia",
           width: 400,
           minWidth: 400,
           maxWidth: 400,
           minHeigth: 400,
           maxHeigth: 400,
           show: "fold",
           hide: "scale",
           buttons: {
               "Aceptar": aceptar,
	       "Cancelar": cancelar
			},
	dialogClass: 'alert'
        });
  }
}

function aceptar()
{
 $( this ).dialog("close");
    $.ajax({
        async:true,
        type: "POST",
        dataType: "html",
        contentType: "application/x-www-form-urlencoded",
        url:"clases/agregar_noticia.php",
        data:"usuarioId=" + x.attr("value") + "&conjuntoId=" + y.attr("value") + "&asunto=" + z.attr("value") + "&contenido=" + w.attr("value") + "&fechaVigencia=" + v.attr("value"),
        success:llegadaDatos,
        timeout:400000
   });
return true;
}


function cancelar()
{
    $( this ).dialog("close");
}

function llegadaDatos(mensaje)
{
  alert("se guardaron los datos");
}
el problema esta en la funcion aceptar pues me cierra el dialogo pero no me ejecuta la funcion ajax de jquery

Código:
function aceptar()
{
 $( this ).dialog("close");
    $.ajax({
        async:true,
        type: "POST",
        dataType: "html",
        contentType: "application/x-www-form-urlencoded",
        url:"clases/agregar_noticia.php",
        data:"usuarioId=" + x.attr("value") + "&conjuntoId=" + y.attr("value") + "&asunto=" + z.attr("value") + "&contenido=" + w.attr("value") + "&fechaVigencia=" + v.attr("value"),
        success:llegadaDatos,
        timeout:400000
   });
return true;
}

y no se por que, o no se que estare haciendo mal, si me pueden colaborar con eso les agradeceria enormemente
  #2 (permalink)  
Antiguo 06/02/2011, 11:35
 
Fecha de Ingreso: febrero-2011
Mensajes: 33
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Problema con cuadro de dialogo en jquery

Código:
function llegadaDatos(mensaje)
{
  alert("se guardaron los datos");
}
success, toma funciones locales no globales puedes ponerlo asi
Código:
$( this ).dialog("close");
    $.ajax({
        async:true,
        type: "POST",
        dataType: "html",
        contentType: "application/x-www-form-urlencoded",
        url:"clases/agregar_noticia.php",
        data:"usuarioId=" + x.attr("value") + "&conjuntoId=" + y.attr("value") + "&asunto=" + z.attr("value") + "&contenido=" + w.attr("value") + "&fechaVigencia=" + v.attr("value"),
        success: function(){ alert('se guardaron los datos');},
        timeout:400000
   });
o usar Ajaxsucces, que toma funciones globales
  #3 (permalink)  
Antiguo 06/02/2011, 19:12
 
Fecha de Ingreso: enero-2011
Ubicación: Bogotá
Mensajes: 9
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Problema con cuadro de dialogo en jquery

Hola muchas gracias voy a probar a ver si me funciona, cualquier cosa vuelvo a comentar
  #4 (permalink)  
Antiguo 08/02/2011, 15:58
 
Fecha de Ingreso: enero-2011
Ubicación: Bogotá
Mensajes: 9
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Problema con cuadro de dialogo en jquery

oye muchas gracias por la ayuda, lo hize como me dijiste y ahora si me sale el msj, pero queria preguntarte a que te refieres con succes pues soy nuevo con jquery y hay muchas cosas que no las se y por eso el error que tenia al llamar la funcion como lo estaba haciendo
  #5 (permalink)  
Antiguo 08/02/2011, 20:41
 
Fecha de Ingreso: febrero-2011
Mensajes: 33
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Problema con cuadro de dialogo en jquery

puedes utilizar una funcion aparte de la que te puse antes:

Código:
$('#loquesea').ajaxSuccess(function() {

$(this).text('la funcion ajax se ejecuto correctamente este texto lo muestro dentro de #loquesea');});

})
La cosa es que asi puedes usarlo para todas las peticiones ajax que uses dentro de la pagina por ejemplo, tambien se pueden hacer diferencias para cada ajax pero prefiero usar la del interior de $.ajax
AjaxRequest() yo lo uso para las paginas de carga de varios archivos le pongo la funcion y cargo un div para que me salga cada vez que se cargo un archivo archivo cargado, no ayuda en demasia pero te ahorra condicionales
  #6 (permalink)  
Antiguo 29/10/2014, 08:59
Avatar de ERIKPUGO  
Fecha de Ingreso: marzo-2014
Ubicación: Bogota- Colombia
Mensajes: 16
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Problema con cuadro de dialogo en jquery

Tengo un prolema tambie parecido, pero este me trae la ventana dialog y muestra los datos del ajax correcto pero otra veces entra al if y despues al else y trae el alert y bloque la ventana dialog.. que puede ser?
function buscaProducto(url, cod, name) {

if (cod.length != 0 || name.length != 0) {
var producto = name;
var identidad = cod;
$.ajax({

url: url,
type: "POST",
dataType: "html",
error: AjaxFailure,
beforeSend: AjaxBegin,
data: { productoNombre: producto, identidad: identidad },
success: function (data) {
$("#dialog").dialog({
bigframe: true,
modal: true,
autoOpen: true,
width: 900,
heigth: 700,
resizable: false
});
$("#progressbar").hide();
$("#dialog").html(data);
console.log("Entregó los datos al #dialog");
}

});
}
else {
alert("<p>Debe ingresar una opcion de busqueda</p>", $(window).height() / 3)
this.abort();
}
}

Etiquetas: cuadro, dialogo
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.