Foros del Web » Programando para Internet » Jquery »

problemas para crear un abm usando ajax con jquery

Estas en el tema de problemas para crear un abm usando ajax con jquery en el foro de Jquery en Foros del Web. Hola amigos. Comentarles que estoy queriendo crear un abm, alta, baja y modificacion de registros con ajax. En otras palabras, pasar un abm tradicional hecho ...
  #1 (permalink)  
Antiguo 16/12/2010, 18:20
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 14 años, 10 meses
Puntos: 269
Busqueda problemas para crear un abm usando ajax con jquery

Hola amigos.
Comentarles que estoy queriendo crear un abm, alta, baja y modificacion de registros con ajax. En otras palabras, pasar un abm tradicional hecho en php y mysql a ajax.

bien, al grano.

La insercion de registros ya la he hecho y funciona perfecto. Consta de dos paginas, una el index y la otra la que procesa las variables del formulario e inserta el registro.

index.php
Código:
<form action="inserta.php" method="get">
	<input type="text" name="nombre" id="nombre"/>
	<input type="submit" value="+" id="enviar"/>
</form>
<script type="text/javascript">
var x;
x=$(document);
x.ready(inicializarEventos);

function inicializarEventos()
{
  var x;
  x=$("#enviar");
  x.click(presionSubmit);
}

function presionSubmit()
{
  var v=$("#nombre").attr("value");
  $.get("inserta.php",{nombre:v}); 
  return false;
}
</script>
inserta.php
Código:
<?php 
require_once("conexion.php");
$sql= "insert into registros
values
(null, '".$_GET{"nombre"}."')
";
$res=mysql_query($sql,$conect);
?>
Como les dije funciona perfecto pero tengo el problema que una vez que se hace el "insert into" el index no se refrezca automaticamente.

Es lógico que esto ocurra porque traigo los registros de este modo:

Código:
<?php
$consulta="
select * from registros
";
$respuesta=mysql_query($consulta,$conect);
while($reg=mysql_fetch_array($respuesta))
{
?>
<tr class="registros">
	<td><span class="id"><?php echo $reg['id']?></span></td>
	<td><span class="nombre"><?php echo $reg['nombre']?></span></td>
</tr>
<?php
}
?>
He aquí mi problema.
¿Como traer registros sin usar $.get o $.post?


He intentado solucionarlo, aunque sin éxito, del siguiente modo:

Creé una pagina llamada pagina.php la cual alojé dentro de una carpeta llamada cargas.

Dentro de pagina.php incluí:


Código:
<?php
$consulta="
select * from registros
";
$respuesta=mysql_query($consulta,$conect);
while($reg=mysql_fetch_array($respuesta))
{
?>
<tr class="registros">
	<td><span class="id"><?php echo $reg['id']?></span></td>
	<td><span class="nombre"><?php echo $reg['nombre']?></span></td>
</tr>
<?php
}
?>
y luego en index.php dentro de <head></head>
Código:
<script type="text/javascript">
$(document).ready(function(){	
$('#cargamos').load('cargas/pagina.php');
});
</script>
Bien, esto no funcionó.

Me han comentado que para resolver este problema debo usar json.
Pero no tengo idea de como llevar a cabo esta tarea usando json.

Desde ya le agradezco si pueden compartirme un link, tutorial o ejemplo.

Sin mas, un fuerte abrazo.

/////////////////

Edito:

En este enlace pueden ver en funcionamiento el trabajo.

Notaran que luego de hacer click en el boton "+" se inserta el registro sin refrescar la pagina.
Pero no muestra el registro hasta que no pulsamos f5.

Última edición por cristian_cena; 17/12/2010 a las 08:50
  #2 (permalink)  
Antiguo 17/12/2010, 17:14
Avatar de chicohot20  
Fecha de Ingreso: mayo-2009
Mensajes: 388
Antigüedad: 15 años
Puntos: 43
Respuesta: problemas para crear un abm usando ajax con jquery

Se me ocurre que despues de insertar(en inserta.php) el archivo te imprima el dato que ingresaste y eso lo recuperes con el $get y agregas esa info a tu tabla del index.
  #3 (permalink)  
Antiguo 17/12/2010, 17:44
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Tema movido desde AJAX
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 17/12/2010, 19:18
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 15 años, 5 meses
Puntos: 66
Respuesta: problemas para crear un abm usando ajax con jquery

aca te prepare un ejemplo de como podrias hacerlo, no tengo php instalado asi que no lo pude probar, pero por ahi va la cosa:

index.php

Código PHP:
Ver original
  1. <head>
  2.     <title>Prueba</title>
  3.     <style>
  4.         #listado{width:200px;}
  5.    </style>
  6.    
  7.     <script type="text/javascript">
  8.         $(document).ready(function(){
  9.                 var actualizar = function(){
  10.                     $.post('insertar.php',{
  11.                         accion:'actualizar'
  12.                     },function(respuesta){
  13.                         var tabla = $('<table/>').appendTo('#listado');
  14.                         for( var i=0; i<respuesta.length; i++){
  15.                             var fila = $('<tr/>').appendTo(tabla);
  16.                             var id = $('<tr/>').text(respuesta[i][0]).appendTo(fila);  
  17.                             var nombre = $('<tr/>').text(respuesta[i][1]).appendTo(fila);  
  18.                         }
  19.                     });    
  20.                 }
  21.            
  22.                 $('#enviar').click(function(){
  23.                     var nombre =$.trim($('#nombre').val());
  24.                     if(nombre != ''){
  25.                         $.post('insertar.php',{
  26.                             accion:'insertar',
  27.                             nombre:nombre  
  28.                         },function(respuesta){
  29.                             if(respuesta){
  30.                                 alert('el registro fue insertado correctamente')    ;
  31.                                 actualizar();
  32.                             }
  33.                         });
  34.                     }else{
  35.                         alert('el nombre no debe estar vacio');
  36.                     }
  37.                                         return false;
  38.                 });
  39.                
  40.                 actualizar();
  41.         });
  42.     </script>
  43. </head>
  44.  
  45. <body>
  46.     <form action="inserta.php" method="get">
  47.         <input type="text" name="nombre" id="nombre"/>
  48.         <input type="submit" value="+" id="enviar"/>
  49.     </form>
  50.     <div id="listado"></div>
  51. </body>

insertar.php

Código PHP:
Ver original
  1. <?php
  2. require_once("conexion.php");
  3.  
  4. $accion = $_REQUEST['accion'];
  5.  
  6. if($accion == 'actualizar'){
  7.     $sql = 'SELECT * FROM registros';  
  8.     $res=mysql_query($sql,$conect);
  9.     $arreglo = '';
  10.     while($reg=mysql_fetch_array($respuesta)){
  11.         $arreglo[] = array($row['id'],$row['nombre']);
  12.     }
  13.     echo json_encode($arreglo);
  14. }elseif ($accion == 'insertar'){
  15.     $sql = 'INSERT INTO registros values(null, '.$_REQUEST['nombre'].')';  
  16.     $res=mysql_query($sql,$conect);
  17.     echo json_encode(true);
  18. }else{
  19.     echo 'Accion invalida';
  20. }
  21.  
  22. ?>
__________________
Extension Google Chrome
dar las gracias no cuesta nada :D

Etiquetas: ajax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:27.