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

Actualización de un consulta a Mysql

Estas en el tema de Actualización de un consulta a Mysql en el foro de Frameworks JS en Foros del Web. Estimados, La última vez que pregunte en este foro por algún problema sobre AJAX, no tuve muchas respuestas, pero me dedique a investigar y leer, ...
  #1 (permalink)  
Antiguo 07/01/2010, 08:37
Avatar de Jona_than  
Fecha de Ingreso: noviembre-2005
Ubicación: Chile
Mensajes: 155
Antigüedad: 18 años, 5 meses
Puntos: 0
Sonrisa Actualización de un consulta a Mysql

Estimados,

La última vez que pregunte en este foro por algún problema sobre AJAX, no tuve muchas respuestas, pero me dedique a investigar y leer, y ahora se un poco más...

He estado trabajando bastante, en ajax, tratando de hacerlo todo vía DOM, así que he encontrado con el siguiente "obstáculo".

Tengo una consulta a mi base de datos, en la cual elimino datos de mi base de datos, especificamente unas categorias, y tengo lo siguiente

Código Javascript:
Ver original
  1. function EliminarRegistroCategoria(Id){
  2.    divFormulario = document.getElementById('resultado');
  3.    ajax=objetoAjax();
  4.    ajax.open("POST", "eliminar_cat_MySQL.php");
  5.    ajax.onreadystatechange=function() {
  6.      if (ajax.readyState==4) {
  7.         divFormulario.innerHTML = '<img src="imagenes/ajax-loader.gif" />';
  8.      }else{
  9.     window.setTimeout('EliminarRegistroCategoriaEspera();',3000);
  10.      }
  11.    }
  12.    ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  13.    ajax.send("action="+Id)
  14. }
  15. function EliminarRegistroCategoriaEspera(){
  16.         divFormulario.innerHTML = ajax.responseText
  17.     }

Lo cual hace lo que yo requiero, el tema que cuando se ejecuta el archivo eliminar_cat_MySQL.php borra la entrada de la base de datos, pero donde tenia mi listado de categorias, todavía aparece, puede ser posible que al ejecutar esta acción de eliminar automáticamente borre de la lista de registros, ojala sea de una forma elegante en Ajax, para que se vea bonito...

Esperando, si alguien me entiende, me despido.

Saludos.
__________________
- Fasecreativa
- Twitter @jonyram
  #2 (permalink)  
Antiguo 07/01/2010, 09:41
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Actualización de un consulta a Mysql

Con el método removeChild() del elemento padre puedes eliminarlo.
Véase: https://developer.mozilla.org/En/DOM/Node.removeChild

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 07/01/2010, 09:50
Avatar de Jona_than  
Fecha de Ingreso: noviembre-2005
Ubicación: Chile
Mensajes: 155
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Actualización de un consulta a Mysql

Cita:
Iniciado por David Ver Mensaje
Con el método removeChild() del elemento padre puedes eliminarlo.
Véase: https://developer.mozilla.org/En/DOM/Node.removeChild

Saludos.

Pero no quiero eliminarlo, quiero actualizarlo! así que cuando apreté mi enlace que diga eliminar, elimine el registro, y donde esta el registro eliminado en una lista, lo borre =)

Saludos.
__________________
- Fasecreativa
- Twitter @jonyram
  #4 (permalink)  
Antiguo 07/01/2010, 09:53
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Actualización de un consulta a Mysql

Precisamente, no me refiero a que elimines la lista, sino a que con removeChild elimines ese elemento de la lista que fue borrado de la base de datos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 07/01/2010, 09:57
Avatar de Jona_than  
Fecha de Ingreso: noviembre-2005
Ubicación: Chile
Mensajes: 155
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Actualización de un consulta a Mysql

Cita:
Iniciado por David Ver Mensaje
Precisamente, no me refiero a que elimines la lista, sino a que con removeChild elimines ese elemento de la lista que fue borrado de la base de datos.
Apssssss!!! haber, leeré el tema, haber si me sirve de alguna forma, yo creo que obviamente que sí, para ver que tal queda.

Muchas gracias, estuve leyendo en internet y hablando bastante de ocupar una función para refrescar el div, con un SetTimeout();

No sé, si eso servirá en este caso.

Saludos y gracias...
__________________
- Fasecreativa
- Twitter @jonyram
  #6 (permalink)  
Antiguo 07/01/2010, 10:57
Avatar de Jona_than  
Fecha de Ingreso: noviembre-2005
Ubicación: Chile
Mensajes: 155
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Actualización de un consulta a Mysql

Replanteare mi situación, mostrandole más codigo para que vean lo que realmente quiero hacer, porque vi la solución de David, y no me sirvio del todo.

Incluso, hice una especie de solución de parche, pero no me funciona correctamente en la segunda vez que quiero eliminar.

Código Javascript:
Ver original
  1. function EliminarRegistroCategoria(Id){
  2.    divFormulario = document.getElementById('resultado');
  3.    divContenido = document.getElementById('registro');
  4.    divFormulario.innerHTML = '<img src="imagenes/ajax-loader.gif" />';
  5.    ajax=objetoAjax();
  6.    ajax.open("POST", "eliminar_cat_MySQL.php");
  7.    ajax.onreadystatechange=function() {
  8.      if (ajax.readyState==4 || ajax.readyState==200) {
  9.         divFormulario.innerHTML = ajax.responseText;
  10.         divContenido.innerHTML = "";
  11.      }
  12.    }
  13.    ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  14.    ajax.send("action="+Id)
  15. }

Código PHP:
Ver original
  1. <div id="contenido">
  2.             <h2>Editar categorias...</h2>
  3.             <?php
  4.             require 'IndexClass.php';
  5.             $BaseDatos=BaseDatosClass::hacerInstancia();
  6.             $Select='SELECT * FROM CORREOS_CATEGORIAS ORDER BY ID_CATEGORIA DESC';
  7.             $enlace=$BaseDatos->EjecucionMySQLQuery($Select);
  8.             while($array=$BaseDatos->ObtenerRegistrosDB($enlace)){
  9.             ?>
  10.             <div id="registro">
  11.                 <div class="titulo"><?php echo $array["NOMBRE_CATEGORIA"];?></div>
  12.                 <div class="eliminar">-> <a href="#" onclick="EliminarRegistroCategoria(<?php echo $array["ID_CATEGORIA"];?>)">Eliminar</a></div>
  13.             </div>
  14.             <?php
  15.             }
  16.             $BaseDatos->LiberarConsultaDB($enlace);
  17.             $BaseDatos->DesconectarDB();
  18.             ?>
  19.  
  20.             <div id="resultado"></div>
  21.             </div>

Espero, que esta vez me puedan ayudar, lo he visto muchas veces, pero no sé como realizarlo.

Que cuando elimine, desaparezca ese registro de mi eliminar_cat.php, especie de refresh o algo así...

Saludos.
__________________
- Fasecreativa
- Twitter @jonyram
  #7 (permalink)  
Antiguo 07/01/2010, 11:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Actualización de un consulta a Mysql

El problema es que no puedes tener varios elementos con el mismo id. De la forma como tienes todos los <div> tendrán como id "registro".

Una solución podría ser:
Código HTML:
Ver original
  1. <div id="registro<?php echo $array['ID_CATEGORIA']; ?>">
Código Javascript:
Ver original
  1. divContenido = document.getElementById('registro' + Id);
Con eso, podrás diferenciar los registros por su ID.

Y, para eliminar:
Código Javascript:
Ver original
  1. divCotenido.parentNode.removeChild(divContenido);
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 07/01/2010, 11:21
Avatar de Jona_than  
Fecha de Ingreso: noviembre-2005
Ubicación: Chile
Mensajes: 155
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Actualización de un consulta a Mysql

Uhhhhh! muchas gracias, realmente!!! si no fuera por tí, no lo hubiese logrado!

Ahora entendí bien el significado del removeChild. Ojala que mi pregunta, se sirva a los que vengan.

Saludos.
__________________
- Fasecreativa
- Twitter @jonyram

Etiquetas: ajax, mysql
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 10:07.