Buenas, hace unos días abrí un hilo para preguntar si se podía enviar y recibir datos entre JS y PHP y que fuera transparente para el usuario. Me dijeron que sí, con AJAX y JSON, investigué un poco y encontré varios ejemplos que me valían. Pero ahora me he atascado y no sé que está fallando. Resumiendo, tengo una sección de comentarios que quiero que el usuario pueda editar o eliminar. El código es más o menos este:
Código Javascript
:
Ver original$(".btn_eliminar").click(function() {
// Construyo un array con la información a enviar, por ejemplo sería algo así.
var parametros = {
"id" : 1,
"mensaje" : "Esto es un mensaje enviado desde JS"
};
// Paso a json
var datosJSON = JSON.stringify(parametros);
$.ajax({
type: "POST",
data: datosJSON,
url: 'consulta.php',
success: function(data) {
var res = jQuery.parseJSON(data);
if (res.success == 1) {
// Código en caso de éxito en la consulta
}
else {
// Código en caso de fracaso en la consulta
}
},
error: function(e) { // Si no ha podido conectar con el servidor
// Código en caso de fracaso en el envío
}
});
});
El archivo consulta.php simplemente debería recibir los datos por post, modificar la BD y devolver una respuesta. Más o menos sería:
Código PHP:
Ver original
// Operaciones con la BD en función de los datos recibidos
"success" => 1,
"error" => 0,
"msg" => ""
);
Pues algo está fallando y por más que reviso no sé lo que es. ¿Alguna idea?
Además, también me gustaría codificar los datos con md5 para evitar sniffers. Si pudiérais orientarme os lo agradecería, aunque mi principal objetivo es que lo primero funcione.
Gracias.
Edito, se me pasó comentar que el código funciona cuando cambio esto en la petición ajax.
Código Javascript
:
Ver originaldata: {"id": 1, "mensaje": "Esto es un mensaje enviado desde JS"},
Y en el php puedo devolver:
Código PHP:
Ver original "success" => 1,
"error" => 0,
"msg" => $_POST["mensaje"]
);
Así que supongo que el problema está en la codificación a JSON en JS o en la decodificación en PHP.