Agregar datos a una tabla desde una fuente externa con JQUERY

Documento sin título

Agregar datos a una tabla desde una fuente externa con JQUERY

Ahora mostrare una forma de ingresar datos a una tabla desde una fuente externa (en este caso una lista estática) utilizando jquery.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Documento sin título</title>
<script type="text/javascript" src="jquery.js" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
$(function() {
   $("#btnInsertar").click(addUsuario);
   $("#btnInsertarExt").click(getDatos);
});

function addUsuario(){
   var Nombres=$("#txtNombres").val();
   var apellidos=$("#txtApellidos").val();
   var telefono=$("#txtTelefono").val();
   var tablaDatos= $("#tblDatos");

   if(Nombres!="" || apellidos!="" || telefono!="" ){
      tablaDatos.append("<tr><td>"+Nombres+"</td><td>"+apellidos+"</td><td>"+telefono+"</td></tr>");
      reset_campos();
   }
}

function reset_campos(){
   $("#txtNombres").val("");
   $("#txtApellidos").val("");
   $("#txtTelefono").val("")
}

function getDatos(){
   var resp=true;
   var datos='';
   $.ajaxSetup({async: false});
   $.post('datos.jsp', function(data) {datos=data;});
   var tablaDatos= $("#tblDatos");

   var Nombres="";
   var apellidos="";
   var telefono="";

   var filasStr = datos.split("|||");

   for(i=0;i<filasStr.length;i++){
      var fila= filasStr[i];
      var datosFila=fila.split("&&&");

      Nombres=datosFila[0];
      apellidos=datosFila[1];
      telefono=datosFila[2];

      tablaDatos.append("<tr><td>"+Nombres+"</td><td>"+apellidos+"</td><td>"+telefono+"</td></tr>");
   }
}
</script>
<style type="text/css">
   .tablaDatos {
      font-family: Verdana, Geneva, sans-serif;
      font-size:
12px;
      font-style:
normal;
      background-color:
#FFC;
   }
   .tablaDatosTitulo {
      font-family: Verdana, Geneva, sans-serif;
      font-size:
12px;
      font-style:
italic;
      background-color:
#F90;
   }
</style>
</head>

<body>
<table width="50%" border="1" align="center" cellpadding="0" cellspacing="0" class="tablaDatos">
      <tr>
         <td width="33%" class="tablaDatosTitulo">
Nombres</td>
         <td width=
"67%"><input name="txtNombres" type="text" id="txtNombres" size="50" /></td>
      </tr>
      <tr>
         <td class=
"tablaDatosTitulo">Apellidos</td>
         <td>
<input name="txtApellidos" type="text" id="txtApellidos" size="50" /></td>
      </tr>
      <tr>
         <td class=
"tablaDatosTitulo">Teléfono</td>
         <td>
<input name="txtTelefono" id="txtTelefono" type="text" /></td>
      </tr>
      <tr align=
"center">
         <td colspan=
"2"><input name="btnInsertar" id="btnInsertar" type="button" value="Insertar" /><input name="btnInsertarExt" id="btnInsertarExt" type="button" value="Insertar desde fuente externa" /></td>
      </tr>
</table>
<br />

<table width="70%" border="0" align="center" cellpadding="0" cellspacing="0" class="tablaDatos" id="tblDatos">
      <tr class=
"tablaDatosTitulo">
         <td>
<strong>Nombres</strong></td>
         <td>
<strong>Apellidos</strong></td>
         <td>
<strong>Teléfono</strong></td>
      </tr>
</table>

</body>
</html>

Explicación

En este ejemplo tenemos dos formas de agregar los datos a la tabla:
  • Desde campos de un formulario: En la función function addUsuario() simplemente hacemos referencia a los campos del formulario.
  var Nombres=$("#txtNombres").val();
  var apellidos=$("#txtApellidos").val();
  var telefono=$("#txtTelefono").val();
  var tablaDatos= $("#tblDatos");
Luego debemos hacer una referencia la tabla que vamos a agregar los datos:
var tablaDatos= $("#tblDatos");
Y por ultimo se hacen las validaciones de los campos y se agregan los datos con el método append de Jquery.
 if(Nombres!="" || apellidos!="" || telefono!="" ){
      tablaDatos.append("<tr><td>"+Nombres+"</td><td>"+apellidos+"</td><td>"+telefono+"</td></tr>");
      reset_campos();
   }
El método append nos permite agregar un nuevo contenido al final de un elemento sin modificar la información de este.
  • Desde una fuente externa: En la función function getDatos() usamos la función  $.post para traer la información de una URL. Estos datos están establecidos de forma estática aunque también puede ser tomada de un archivo plano o una base de datos si se usa paginas dinámicas como JSP o PHP.
Primero tomamos la información de la URL:
var datos='';
$.ajaxSetup({async: false});
$.post('datos.jsp', function(data) {datos=data;});
La línea $.ajaxSetup({async: false}); especifica que la transmisión de los datos debe hacerse de forma sincrónica, ósea que el programa debe esperar a la respuesta de la URL para continuar su ejecución.
En $.post('datos.jsp', function(data) {datos=data;}); especificamos la URL y asignamos la variable que retornara los datos en var datos='';
Como se vio en el método function addUsuario() hay que hacer referencia a la tabla que tendrá los datos. var tablaDatos= $("#tblDatos");
Bueno ahora lo que sigue es el procesamiento de la información. En este ejemplo he utilizado la secuencia de caracteres &&& para separar los datos de las columnas y la secuencia ||| para separar las filas de la tabla. Aunque hay varios métodos para hacer esto me pareció el mas sencillo.
Para separar los datos y agregarlos a la tabla vamos a utilizar el método split() y append():
var filasStr = datos.split("|||");
for(i=0;i<filasStr.length;i++){
      var fila= filasStr[i];
      var datosFila=fila.split("&&&");

      Nombres=datosFila[0];
      apellidos=datosFila[1];
      telefono=datosFila[2];

      tablaDatos.append("<tr><td>"+Nombres+"</td><td>"+apellidos+"</td><td>"+telefono+"</td></tr>");
   }
Bueno espero que les haya servido este pequeño ejemplo. Les agradezco cualquier tipo de comentario y sugerencia de tutoriales.
Aqui les dejo los fuentes del ejemplo.
Descargar Fuentes del Ejemplo
:)

Comentarios

  1. Respuestas
    1. Hola. Seria con la función .remove de jquery. Para mas info http://api.jquery.com/remove/

      Borrar
    2. no me funciona con remove. me elimina solo el boton que es para eliminar.

      Borrar
  2. una consulta y como hago para extraer datos de u jsp externo

    ResponderBorrar
  3. Excelente aporte gracias....una pregunta.... como seria coger los valores de la tabla y amacenarlos en una base de datos

    ResponderBorrar
  4. ME AYUDO BASTANTE GRACIAS :)=

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Encriptar y desencriptar archivos con NodeJs y crypto-js

Recorrer campos de un formulario con JQuery