Cita:
Iniciado por pateketrueke ...Sería bueno que muestras cómo es tu código actual...
De acuerdo
.
Esto está en el documento que hace la petición:
Código HTML:
Ver original<form id="formularioComprar"> <select id="cliente" name="cliente"> <select id="articulo" name="articulo"> <input type="hidden" name="forma" value="formularioComprar"> <input type="submit" value="Comprar">
<script type="text/javascript">
$(document).ready(function() {
$(function() {
$.ajaxSetup({
error: function(jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Sin conexión: Verificar Red');
} else if (jqXHR.status == 404) {
alert('Página no encontrada. Error 404');
} else if (jqXHR.status == 500) {
alert('Error del servidor. Error 500');
} else if (exception === 'parsererror') {
alert('Fallo en la petición JSON');
} else if (exception === 'timeout') {
alert('Tiempo límite excedido');
} else if (exception === 'abort') {
alert('Se abortó la petición AJAX');
} else {
alert('Uncaught Error: ' + jqXHR.responseText);
}
}
});
});
$("#formularioComprar").on("submit", function(e) {
e.preventDefault();
var datos = $("#formularioComprar").serializeArray();
$.ajax({
type: "POST",
dataType: "json",
url: "process.php",
data: datos,
success: function(response) {
$("#tablaResultado").append( response.filaHTML );
$("#mensaje").text( response.statusResponse );
},
complete: function(jqXHR, estado) {
if (estado == "parsererror") {
$("#mensaje").text( estado );
}
}
});
});
});
Esto está en el documento solicitado por la petición AJAX:
Código PHP:
Ver original<?php
if(isset($_POST["forma"])){$forma=$_POST["forma"];} if(isset($_POST["cliente"])){$cliente=$_POST["cliente"];} if(isset($_POST["articulo"])){$articulo=$_POST["articulo"];}
$filaHTML = "";
if($forma) {
if ($forma == "formularioComprar") {
$conexion = new mysqli("localhost", "root", "", "claves_foraneas");
$query2 = "
SELECT a.id,
a.nombre,
a.ciudad,
b.id,
b.codigo
FROM cliente a, compra b
WHERE a.id = b.id
";
if ( ($cliente != "NULL") && ($articulo != "NULL") ) {
if ( $resultado = $conexion->query($query2) ) {
if ($resultado->num_rows > 0) {
while ($row = $resultado->fetch_object()) {
$filaHTML .= "<tr> <td> </td> <td>".$row->nombre."</td> <td> </td> <td> </td> </tr>";
}
$arrayRespuestas = array( 'filaHTML' => $filaHTML,
'statusResponse' => 'Respuesta AJAX OK'
);
switch(json_last_error()) {
case JSON_ERROR_NONE:
echo ' - Sin errores';
break;
case JSON_ERROR_DEPTH:
echo ' - Excedido tamaño máximo de la pila';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Desbordamiento de buffer o los modos no coinciden';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Encontrado carácter de control no esperado';
break;
case JSON_ERROR_SYNTAX:
echo ' - Error de sintaxis, JSON mal formado';
break;
case JSON_ERROR_UTF8:
echo ' - Caracteres UTF-8 malformados, posiblemente están mal codificados';
break;
default:
echo ' - Error desconocido';
break;
}
echo PHP_EOL;
}
}
}
}
}
Te actualizo. Hice una prueba más, pero ahora con la función
json_last_error(), que informa si está mal construido el JSON. En efecto, esta función me devuelve:
Caracteres UTF-8 malformados, posiblemente están mal codificados.
Saludos!