Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/02/2015, 09:54
elcaiaimar
 
Fecha de Ingreso: septiembre-2014
Mensajes: 40
Antigüedad: 10 años, 1 mes
Puntos: 0
Pregunta JsonResponse and Ajax function.

Hola!

Estoy intentando mandar un Json para que lo recoja mi funcion ajax, pero no hay manera.
Lo que obtengo al darle a mi botón eliminar (elimina un registro de la base de datos) es la página con el mensaje: {"status":"True","product_id":p.id}. Esto no debería salir, sino ser enviado a la función y aparecer un alert diciendo que el registro ha sido eliminado.

Estoy trabajando con django 1.7. Alguien sabría como solucionarlo? No entiendo por que mi función no coge el response y lleva a cabo su código.

Muchas gracias de antemano.

template:

Código HTML:
Ver original
  1. <form method="post" id="frmEliminar">
  2.       {% csrf_token %}
  3.       <input type="hidden" id="modal_idProducto" name="product_id">
  4.       <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Cerrar</
  5. button>
  6.       <button type="submit" class="btn btn-danger">Eliminar</button>
  7.  </form>

views.py:

Código Python:
Ver original
  1. if request.method=="POST":
  2.         if "product_id" in request.POST:
  3.             try:
  4.                 id_producto = request.POST['product_id']
  5.                 p = Pozo.objects.get(pk=id_producto)
  6.                 mensaje = {"status":"True","product_id":p.id}
  7.                 p.delete() # Elinamos objeto de la base de datos
  8.                 return JsonResponse(mensaje)
  9.             except:
  10.                 mensaje = {"status":"False"}
  11.                 return JsonResponse(mensaje)

Ajax.js:

Código Javascript:
Ver original
  1. // Autor: @jqcaper
  2. // Configuraciones Generales
  3. var nombre_tabla = "#tabla_productos"; // id
  4. var nombre_boton_eliminar = ".delete"; // Clase
  5. var nombre_formulario_modal = "#frmEliminar"; //id
  6. var nombre_ventana_modal = "#myModal"; // id
  7. // Fin de configuraciones
  8. $(document).on('ready',function(){
  9.     $(nombre_boton_eliminar).on('click',function(e){
  10.         e.preventDefault();
  11.         var Pid = $(this).attr('id');
  12.         var name = $(this).data('name');
  13.         $('#modal_idProducto').val(Pid);
  14.         $('#modal_name').text(name);
  15.     });
  16.     var options = {
  17.         success:function(response)
  18.         {
  19.             if(response.status=="True"){
  20.                 alert("Eliminado!");
  21.                 var idProd = response.product_id;
  22.                 var elementos= $(nombre_tabla+' >tbody >tr').length;
  23.                 if(elementos==1){
  24.                     location.reload();
  25.                 }else{
  26.                     $('#tr'+idProd).remove();
  27.                     $(nombre_ventana_modal).modal('hide');
  28.                 }
  29.             }else{
  30.                 alert("Hubo un error al eliminar!");
  31.                 $(nombre_ventana_modal).modal('hide');
  32.             };
  33.         }
  34.     };
  35.     $(nombre_formulario_modal).ajaxForm(options);
  36. });

Última edición por razpeitia; 10/02/2015 a las 10:50