Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Eliminar e insertar sin refresco

Estas en el tema de Eliminar e insertar sin refresco en el foro de Frameworks JS en Foros del Web. Buenos días, tengo una tabla con registros, por ejemplo, países. Quiero eliminar estos registros sin tener que refrescar la página. Para ello estoy usando una ...
  #1 (permalink)  
Antiguo 16/07/2009, 05:34
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Eliminar e insertar sin refresco

Buenos días,
tengo una tabla con registros, por ejemplo, países. Quiero eliminar estos registros sin tener que refrescar la página. Para ello estoy usando una función que encontré en la siguiente página web:
http://www.pcimpacto.com.ar/informacion.php?id=45

Ahora estoy haciendo lo mismo para insertar, es decir, en esta misma página que yo tengo el listado de países, donde puedo verlos y eliminarlos, tengo un pequeño campo de texto con un botón para insertar un nuevo pais.
Hago exactamente lo mismo que eliminar, pero en este caso hago un "INSERT INTO..".

Cuando inserto, quiero que me aparezca en mi lista el nuevo registro insertado, y para ello, hago lo siguiente:

Código PHP:
function.....
  
document.getElementById('capa').innerHTML=nuevo_pais_insertado;
.... 
Hasta aquí no hay problema. El problema es el "id" (autonumerico en mi caso, en la base de datos) que no se cual acaba de insertar, entonces, cuando aparece en la lista de paises (con su botón correspondiente eliminar) no se que "id" tiene para poderlo eliminar.

1.- Como funciona exactamente la funcion de pasar datos del cliente.php al servidor.php de la web donde consulté (getDataServer). Abre una ventana aparte?
2.- Puedo enviar variables con esa función a mi archivo "servidor.php" que es donde hago el delete o insert, puedo recibir datos de ese archivo ???

Un saludo.
  #2 (permalink)  
Antiguo 16/07/2009, 08:01
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Eliminar e insertar sin refresco

Hola

Cuando haces la consulta para traer todos los registros, saca también su id

Código php:
Ver original
  1. for ....
  2.  
  3. <div id="div_"$id><a href="javascript:eliminarPais($id)">Eliminar</a>- Argentina</div>

Perdona si la sintaxis es un desastre, soy de ASP

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 16/07/2009, 08:13
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Eliminar e insertar sin refresco

Cita:
Iniciado por Adler Ver Mensaje
Hola

Cuando haces la consulta para traer todos los registros, saca también su id

Código php:
Ver original
  1. for ....
  2.  
  3. <div id="div_"$id><a href="javascript:eliminarPais($id)">Eliminar</a>- Argentina</div>

Perdona si la sintaxis es un desastre, soy de ASP

Suerte
Si eso ya lo hago, creo que no entendiste mi problema, es para el nuevo registro que inserto, no se su "id". Es decir , los registros que ya tengo en base de datos, cuando hago el select puedo coger su id, porque ya existen. Ahora inserto un registro nuevo, como se su id ?
  #4 (permalink)  
Antiguo 16/07/2009, 08:18
Avatar de eall  
Fecha de Ingreso: noviembre-2008
Ubicación: Concepcion
Mensajes: 127
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Eliminar e insertar sin refresco

si utilizas mySQL existe una función que obtiene el ultimo registro insertado, el cual puedes retornar a tu funcion que agrega la fila, si utilisas otro DBMS tendrás que buscar el máximo id, esto si es que tus ids son autonumerico o realizar una busqueda despues de insertar que contenga los mismo datos que acabas de insertar. en fin...

saludos
__________________
tutoriales xajax, jQuery, PHP y otros en mi blog
  #5 (permalink)  
Antiguo 16/07/2009, 08:30
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Eliminar e insertar sin refresco

Cita:
Iniciado por eall Ver Mensaje
si utilizas mySQL existe una función que obtiene el ultimo registro insertado, el cual puedes retornar a tu funcion que agrega la fila, si utilisas otro DBMS tendrás que buscar el máximo id, esto si es que tus ids son autonumerico o realizar una busqueda despues de insertar que contenga los mismo datos que acabas de insertar. en fin...

saludos
Si, mysql_insert_id, el cual no me funciona. Pero aunque funcionara, como le envío ese id de mi archivo "servidor.php" a "clientes.php"?
  #6 (permalink)  
Antiguo 16/07/2009, 09:51
Avatar de eall  
Fecha de Ingreso: noviembre-2008
Ubicación: Concepcion
Mensajes: 127
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Eliminar e insertar sin refresco

la verdad que el ejemplo que buscaste no es el mejor, pero bueno...

fijate que la funcion que elimina paises retorna xml.responseText dentro de esa variable esta todo el texto que devuelve tu script servidor.php por lo que deberas crear una función que al insertar un registro escriba con un echo el id que acaba de insertar y luego en la función javascript le asignas el ID retornado.

Código javascript:
Ver original
  1. <script type="text/javascript">
  2. function agregarPais(pais){
  3.     var id= getDataServer("servidor.php","?agregar_pais="+pais);
  4.     if(id==''){
  5.         alert("Error al insertar");
  6.     }
  7.     else{
  8.         document.createElement("div");
  9.         etc....
  10.     }
  11. }
  12. </script>
  13.  
  14. el resto es tarea tuya
__________________
tutoriales xajax, jQuery, PHP y otros en mi blog

Última edición por eall; 16/07/2009 a las 09:52 Razón: error de compilacion ;)
  #7 (permalink)  
Antiguo 16/07/2009, 10:00
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Eliminar e insertar sin refresco

Cita:
Iniciado por eall Ver Mensaje
la verdad que el ejemplo que buscaste no es el mejor, pero bueno...

fijate que la funcion que elimina paises retorna xml.responseText dentro de esa variable esta todo el texto que devuelve tu script servidor.php por lo que deberas crear una función que al insertar un registro escriba con un echo el id que acaba de insertar y luego en la función javascript le asignas el ID retornado.

Código javascript:
Ver original
  1. <script type="text/javascript">
  2. function agregarPais(pais){
  3.     var id= getDataServer("servidor.php","?agregar_pais="+pais);
  4.     if(id==''){
  5.         alert("Error al insertar");
  6.     }
  7.     else{
  8.         document.createElement("div");
  9.         etc....
  10.     }
  11. }
  12. </script>
  13.  
  14. el resto es tarea tuya
Gracias, esto es lo que necesitaba. He estado probando lo de responseText y no me devolvía nada porqué no hacía ningún "echo". Aunque si hago el "echo" me pinta por pantalla el valor, ejemplo, si le hago un echo($id); me sale un mensaje de alerta con un número (el id).
  #8 (permalink)  
Antiguo 16/07/2009, 10:03
Avatar de eall  
Fecha de Ingreso: noviembre-2008
Ubicación: Concepcion
Mensajes: 127
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Eliminar e insertar sin refresco

fijate en el ejemplo que te di.... el ejemplo que buscaste toma como un error la impresión por parte del servidor.
__________________
tutoriales xajax, jQuery, PHP y otros en mi blog
  #9 (permalink)  
Antiguo 16/07/2009, 11:55
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Eliminar e insertar sin refresco

Hola

La función last_insert_id(), devuelve el último id autonumérico generado en la base, que será el que acabamos de insertar.
mysql_insert_id($conexion) saca el último id generado para nuestra conexión, siempre y cuando la pasemos como parámetro

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #10 (permalink)  
Antiguo 17/07/2009, 02:54
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Eliminar e insertar sin refresco

Cita:
Iniciado por eall Ver Mensaje
fijate en el ejemplo que te di.... el ejemplo que buscaste toma como un error la impresión por parte del servidor.
Sí allí no tengo problema, me refería a que, si en mi archivo "servidor.php" hago un "echo($id);" lo que pasa es que se muesta un alert con el número.
Luego, "xml.responseText" devuelve ese número a "var id= getDataServer("servidor.php","?agregar_pais="+pais );"
Sí se hace de esta manera, si hago cualquier echo en mi archivo servidor.php aprecere un alert...
  #11 (permalink)  
Antiguo 17/07/2009, 08:21
Avatar de eall  
Fecha de Ingreso: noviembre-2008
Ubicación: Concepcion
Mensajes: 127
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Eliminar e insertar sin refresco

no se si no te entiendo yo a ti o tu no me entiendes a mi...

Código javascript:
Ver original
  1. function eliminarPais(id){
  2.     var error = getDataServer("servidor.php","?eliminar_pais="+id);
  3.     if(error){ //error es lo que tu imprimes con echo por eso lo modifiqué en el ejemplo que te dí
  4.         alert(error);//aqui es donde esta el alert que imprime el error
  5.     }
  6.     else{
  7.         document.getElementById("div_"+id).style.display = "hidden";
  8.     }
  9. }
  10.  
  11. function agregarPais(pais){
  12.     var id= getDataServer("servidor.php","?agregar_pais="+pais);
  13.     if(id==''){//ya no es un error recibir un parametro de retorno...
  14.         alert("Error al insertar");//si viene vacio muestra un alert
  15.     }
  16.     else{
  17.         document.createElement("div");
  18.         etc....
  19.     }
  20. }

espero que ahora quede claro.
__________________
tutoriales xajax, jQuery, PHP y otros en mi blog
  #12 (permalink)  
Antiguo 20/07/2009, 02:10
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Eliminar e insertar sin refresco

Sisi, aquí no hay problema lo entendí. Culpa mía que me estoy explicando mal Mira yo tengo lo siguiente:

Archivo servidor.php
Código PHP:
if($_GET['agregar_pais']){
  
//Insert into table.....
  //mysql_query....
  //Cojer el id insertado....
  //echo($id);

Archivo cliente.php
Código PHP:
function agregarPais(pais){    
  var 
idgetDataServer("servidor.php","?agregar_pais="+pais);    

  if(
id==''alert("Error al insertar");
  else 
document.getElemen.....;

Resultado:
id=1;

Clico en el botón de insertar y aparece un alert con el siguiente mensaje: 1
Luego, en la capa (document.getElem....) aparece el registro insertador con su id correspondiente.
Todo bién excepto el alert del mensaje 1 que como hago el echo en el archivo servidor.php me aparece por pantalla en forma de alert
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 06:22.