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<form method="post" id="frmEliminar"> {% csrf_token %}
<input type="hidden" id="modal_idProducto" name="product_id"> <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Cerrar
</ button>
<button type="submit" class="btn btn-danger">Eliminar
</button>
views.py:
Código Python:
Ver originalif request.method=="POST":
if "product_id" in request.POST:
try:
id_producto = request.POST['product_id']
p = Pozo.objects.get(pk=id_producto)
mensaje = {"status":"True","product_id":p.id}
p.delete() # Elinamos objeto de la base de datos
return JsonResponse(mensaje)
except:
mensaje = {"status":"False"}
return JsonResponse(mensaje)
Ajax.js:
Código Javascript
:
Ver original// Autor: @jqcaper
// Configuraciones Generales
var nombre_tabla = "#tabla_productos"; // id
var nombre_boton_eliminar = ".delete"; // Clase
var nombre_formulario_modal = "#frmEliminar"; //id
var nombre_ventana_modal = "#myModal"; // id
// Fin de configuraciones
$(document).on('ready',function(){
$(nombre_boton_eliminar).on('click',function(e){
e.preventDefault();
var Pid = $(this).attr('id');
var name = $(this).data('name');
$('#modal_idProducto').val(Pid);
$('#modal_name').text(name);
});
var options = {
success:function(response)
{
if(response.status=="True"){
alert("Eliminado!");
var idProd = response.product_id;
var elementos= $(nombre_tabla+' >tbody >tr').length;
if(elementos==1){
location.reload();
}else{
$('#tr'+idProd).remove();
$(nombre_ventana_modal).modal('hide');
}
}else{
alert("Hubo un error al eliminar!");
$(nombre_ventana_modal).modal('hide');
};
}
};
$(nombre_formulario_modal).ajaxForm(options);
});