Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/12/2010, 18:20
Avatar de cristian_cena
cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 6 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