Mostrar un mensaje de error con Ajax

Resuelto
BlaBiks Mensajes publicados 22 Estado Miembro -  
jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   -
Hola a todos,

Tengo una pequeña pregunta sobre Ajax, he hecho un chat que envía los mensajes mediante Ajax a mi documento send.php

Pero el problema es que ya no puedo mostrar los mensajes de error con echo "..."; ya que la página no se refresca, así que me gustaría saber cómo hacer para mostrar los mensajes de error, me dijeron que hiciera una solicitud Ajax, pero no manejo eso en absoluto, gracias a todos, también aclaro que no puedo verificar en jQuery si todo está bien ya que tengo varias funcionalidades sobre eso.

3 respuestas

  1. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831
     
    Mejor..

    Por otro lado:
    El primer código js ... (usado con el segundo código (php)) sirve para añadir mensajes en la base de datos... ok.

    Pero tu tercer código ... el que quieres poder usar visiblemente en ajax .... ¿cómo se activa?
    ¿Al presionar un botón?
    En ese caso, tendrás que poner un ONCLICK en ese botón (en lugar de hacer un submit) para llamar a una función javascript que irá, en ajax, a llamar a un archivo php que contiene el siguiente script:
     <?php //Mostrar errores php error_reporting(E_ALL); // No olvides incluir tu archivo de conexión a la base de datos require_once 'cnxBdd.php'; //recuperación limpia de variables $users = isset($ban['1']) ? trim(addslashes($ban['1'])) : NULL; $result = array(); //Inicialización de la variable de salida if($users){ $sql = 'SELECT * FROM users WHERE username = :username'; $datas = array(':username' => stripslashes($users)); try{ $infoUsersReq = $db->prepare($sql); $infoUsersReq->execute($datas); $infoUsers = $infoUsersReq->fetch(); }catch(Exception $e){ //en caso de error en la consulta $result['error'] = $e->getMessage(); } if($infoUsers){ if($username != $infoUsers['username']) { if($infoUsers['grade'] != 'administrador') { if($infoUsers['chatban'] == '0'){ $banUsersChatReq = $db->prepare('...'); $banUsersChatReq->execute(array(...)); // AQUÍ CAMBIAMOS EL ESTATUS DEL MIEMBRO PARA BANNEARLO } else { $result['message'] = "¡El miembro ya está baneado!"; } } else{ $result['message'] = "¡No puedes banear a un administrador!"; } } else{ $result['message'] = "¡No puedes banearte a ti mismo!"; } } else { $result['message'] = "¡El miembro no existe!"; } } //Convertimos a JSON para poder usarlo en javascript echo json_encode($result); 


    Parte de javascript ajax
     function ban(user){ // los datos a transmitir al script ajax php var data = {user:user}; //llamada ajax $.ajax({ type: "POST", url: urlAjx, data: data, async: async, dataType: "json", success: function(reponse){ // reponse es un objeto json que contiene la información devuelta por la página php console.log(reponse); //muestra el resultado en la consola del navegador. var error = (typeof(reponse.error) !='undefined' && reponse.error!=null) ? reponse.error : null; if(error){ alert("¡Error durante la ejecución de la consulta! " + error); } var message = (typeof(reponse.message) !='undefined' && reponse.message!=null) ? reponse.message : null; if(message){ alert(message); } }, error:function(jqXHR, textStatus){ alert('error'); console.log(jqXHR); //mostrar en la consola del navegador } }); } 
    1
    1. BlaBiks Mensajes publicados 22 Estado Miembro
       
      No tengo ningún otro código Ajax que recupere el mensaje de error, precisamente eso es lo que no sé hacer ^^

      y voy a intentar adaptarlo mañana :)
      0
    2. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831
       
      Bueno, te he dado todo...
      solo queda
      ...
      0
    3. BlaBiks Mensajes publicados 22 Estado Miembro
       
      No puedo adaptar tu código al mío, no voy a hacer varios archivos para cada función, hum, pero he encontrado otra solución, ¡gracias a ti! :)
      0
    4. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831 > BlaBiks Mensajes publicados 22 Estado Miembro
       

      No, puedes hacer perfectamente un solo archivo..... pero en el que pases parámetros para elegir el código que quieres ejecutar.... (con un IF o un SWITCH CASE)
      0
    5. BlaBiks Mensajes publicados 22 Estado Miembro
       
      De acuerdo, lo tendré en cuenta para las próximas veces ;)
      0
  2. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831
     
    Hola,

    Sin ver tu código ... IMPOSIBLE ayudarte.
    Sin embargo... hablas de hacer un echo... pero... en ajax... es con JAVASCRIPT que muestras la información....

    En cuanto a tener un ejemplo de ajax, aquí tienes uno (que utiliza JQUERY): https://forums.commentcamarche.net/forum/affich-33258760-remplir-un-formulaire-dynamiquement-en-fonction-d-une-combobox#2

    --
    Atentamente,
    Jordane
    0
    1. BlaBiks Mensajes publicados 22 Estado Miembro
       
      Sé que echo es en PHP, jaja, estaba mostrando mensajes de error en PHP ya que la página se actualizaba; como ahora ya no se actualiza, necesito hacer una solicitud Ajax (creo) para mostrar el mensaje de error, pero Ajax y yo no nos llevamos bien, así que por eso vengo a pedir su ayuda. :)
      0
    2. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831
       
      Te lo repito... SIN VER TU CÓDIGO... IMPOSIBLE AYUDARTE.
      0
    3. BlaBiks Mensajes publicados 22 Estado Miembro
       
      Pero ¿qué quieres ver? Solo hay eso que puede serte útil https://prnt.sc/b9rbx9 ..
      0
    4. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831
       
      Ben y tú... ¿qué quieres que te digamos de más?
      0
    5. BlaBiks Mensajes publicados 22 Estado Miembro
       
      Pero, ¡Dios mío! Dime lo que hay que hacer en lugar de andar con rodeos...
      0
  3. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831
     
    ¿Puedes, como ya te he pedido, PEGAR el código directamente en el foro en lugar de poner imágenes?
    (los mismos dos trozos de código estarán bien).
    Sin embargo... ¿qué tipo de error quieres poder mostrar? No encuentro correspondencia entre el ejemplo dado (el grado = administrador...) y los dos trozos de código que acabas de darnos...
    0
    1. BlaBiks Mensajes publicados 22 Estado Miembro
       
      Je suis désolé, mais je ne peux pas vous aider avec ça.
      0