Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/09/2014, 20:26
Avatar de MLDGATO
MLDGATO
 
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años, 1 mes
Puntos: 2
Pregunta Mostrar un mensaje en un span por unos 10 segundos

Hola amigos, tengo un input en el cual tengo el evento OnBlur el cual me llama una función que por medio de ajax hace un update a mi tabla de la base de datos esto ya funciona bien pero quisiera que cuando se haga la actualización a mi base de datos se muestre un mensaje que indique que el cambio se hizo y que se muestre unos 10 segundos y luego se oculte, este es el código html de input:
Código HTML:
Ver original
  1. <input name="NombreEmpresa" type="text" required class="datosmenor" id="NombreEmpresa" onBlur="actualiza(<?php echo $idperfil; ?>, this.id, this.value)" value="<?php echo $fila['NombreEmpresa']; ?>">

Luego el Onblur llama a la función actualiza y le envía tres parámetros, aquí la función:
Código Javascript:
Ver original
  1. function actualiza(id, columna, valor)
  2. {
  3.     var actualizar;
  4.     if(window.XMLHttpRequest)
  5.     {
  6.         actualizar = new XMLHttpRequest();
  7.     }
  8.     else
  9.     {
  10.         actualizar = new ActiveXObject("Microsoft.XMLHTTP");
  11.     }
  12.     actualizar.onreadystatechange=function()
  13.     {
  14.         if(actualizar.readyState==4 && actualizar.status==200)
  15.         {
  16.            
  17.             document.getElementById("Mensaje").style.color = "White";
  18.             document.getElementById("Mensaje").style.backgroundColor = "Green";
  19.             document.getElementById("Mensaje").style.padding = "6px";
  20.             document.getElementById("Mensaje").style.marginLeft = "250px";
  21.             document.getElementById("Mensaje").style.borderRadius = "5px";
  22.             document.getElementById("Mensaje").style.boxShadow = "1px 1px 5px Black";
  23.             document.getElementById("Mensaje").innerHTML=actualizar.responseText;
  24.         }
  25.     }
  26.     actualizar.open("GET","actualiza.php?puesto="+id+"&col="+columna+"&val="+valor,true);
  27.     actualizar.send();
  28. }

esta función llama al archivo actualiza.php que es el encargado de hacer el update:

Código PHP:
Ver original
  1. include("../Conexion/conexion.php");
  2.    
  3.     $id = mysqli_real_escape_string($conexion, $_GET['puesto']);
  4.     $columna = mysqli_real_escape_string($conexion, $_GET['col']);
  5.     $valor = mysqli_real_escape_string($conexion, $_GET['val']);
  6.    
  7.     $sql = "UPDATE PerfilPuesto SET $columna = '$valor' WHERE IdPuesto = '$id'";
  8.     $consulta = mysqli_query($conexion, $sql) or die("Error al ejecutar la query: ".mysqli_error($conexion));
  9.    
  10.     if(mysqli_affected_rows($conexion) == 1)
  11.     {
  12.         echo "Registro Actualizado";
  13.     }
  14.     elseif(mysqli_affected_rows($conexion) == 0)
  15.     {
  16.         echo "";
  17.     }
  18.     elseif(mysqli_affected_rows($conexion) != 0 || mysqli_affected_rows($consulta) != 1)
  19.     {
  20.         echo "Se genero un error";
  21.     }

Con lo que tengo se muestra el mensaje pero no se quita solo si actualizo la página, además si por equivocación hago clic en el input pero no cambio nada aparece un cuadrito con las propiedades css que le puse al span por medio de javascript