success: function( data ) {
if( data.status == 'error' ) {
// error handling, show data.message or what you want.
} else {
// same as above but with success
}
},
Gracias taxicala. ¿Necesito agregar un tipo de datos a mi $.ajax()?
– henry wright
7 de enero de 2014 a las 16:18
Es mejor si lo haces 🙂 ¡Me alegro de haberte ayudado!
– taxicala
7 de enero de 2014 a las 17:24
Si no agrega un tipo de datos, jquery no sabrá si es json. También puede hacer esto en la parte superior de su script php con header('content-type: text/json');
–Kurt Van den Branden
30 de septiembre de 2017 a las 10:46
Puedes crear un JSON matriz como esta, en el backend:
Y luego analice la matriz json para obtener los valores devueltos, así:
success: function( data ) {
var error="";
var something = '';
for(var i = 0; i < data.length ; i++)
{
error = data[i].error;
something = data[i].something;
}
if( error ) {
// do something
} else {
// do something else
}
},
Mientras que hizo eco de la matriz desde el backend hasta el frontend, no puede simplemente acceder a las variables de PHP dentro de JavaScript.
Tenga en cuenta que puede haber un error de sintaxis, ya que no lo estoy probando.
Si está pasando una sola cadena en su php, es absolutamente innecesario pasar por todo el proceso json siempre que su función javascript ajax solicite los datos devueltos en html.
– pionero
7 de enero de 2014 a las 16:19
pionero: estoy tratando de pasar 2 cuerdas. $respuesta y $error
– henry wright
07/01/2014 a las 16:20
sin embargo, solo necesita uno, es bueno o es malo. ¿Por qué inflar el código? Pero ustedes pueden tener los puntos. Volveré a ganar dinero con mi código compacto ahora. Realmente odio en lo que se ha convertido el desbordamiento de pila. Ahora es como un videojuego.
– pionero
7 de enero de 2014 a las 16:24
pionero – No, necesito 2. Necesito ‘es bueno o malo’ Y ‘el mensaje’
– henry wright
7 de enero de 2014 a las 16:26
Puedes enviar tantas variables como quieras, ¿cuál es el problema, Henry?
la tuya ni siquiera responde a su pregunta. para que molestarse en criticar. Hace que stackoverflow sea una molestia total en mi vida.
– pionero
07/01/2014 a las 16:00
la pregunta es: “Quiero modificar mi función de éxito para hacer algo como esto:”
– pionero
7 de enero de 2014 a las 16:16
El desbordamiento de pila no se trata de proporcionar un código que funcione al 100%, aunque es bueno cuando es posible, y esto es lo que OP está buscando, no es gran cosa si tiene que investigar un poco sobre lo que se le ha dado.
– Jonast92
7 de enero de 2014 a las 16:16
Phil y tú le están diciendo que haga pasos innecesarios.
– pionero
07/01/2014 a las 16:20
No puede usar directamente variables de PHP dentro de JavaScript. Lo mejor que puede hacer es manipular la salida PHP en su código JavaScript.
Por ejemplo, podrías imprimir $response como ‘error’ o ‘no_error’ – y en su devolución de llamada AJAX, verifique que var data no es igual a ‘error’ (por ejemplo).
si utiliza:
echo json_encode($response);
en su función .php, recuerde usar:
var data = $.parseJSON(data);
en su éxito ajax.
Ejemplo:
function php_ajax_function() {
// whatever you want to do...
$response = array();
if ( $id == 0 ) {
$response['status'] = 'error';
$response['message'] = 'This failed';
} else {
$response['status'] = 'success';
$response['message'] = 'This was successful';
}
echo json_encode($response);
}
Y luego, en su código javascript:
success: function( data ) {
console.log(data);
var data = $.parseJSON(data);
if( data.status == 'error' ) {
// do something
} else {
// do other thing
}
}
pionero
los datos de la variable javascript contienen su variable $response repetida. Entonces, usando tu ejemplo, sería algo como esto. Asegúrese de que también está solicitando html como datos de retorno en la función ajax. aquí están los documentos sobre eso: http://api.jquery.com/jquery.ajax/
success: function( data ) {
if( data == 'This failed' ) {
// do something
} else {
// do something else
}
},
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información
¿Por qué no usa el código de resultado http estándar en lugar de reinventar un protocolo encima de un protocolo?
– njzk2
07/01/2014 a las 15:50
Gracias njzk2, como dije, soy nuevo en AJAX. ¿Alguna posibilidad de que pueda proporcionar un ejemplo de cómo hacer eso?
– henry wright
07/01/2014 a las 15:51
Codifique la respuesta como objeto JSON. Verificar
json_encode
en PHP yJSON.parse
en JavaScript.– elclanrs
07/01/2014 a las 15:52
usar php.net/manual/en/function.http-response-code.php para establecer un código de falla, que lo llevará a la función de error de ajax.
– njzk2
7 de enero de 2014 a las 15:57
njzk – gracias, echaré un vistazo
– henry wright
07/01/2014 a las 16:31