Foros del Web » Programando para Internet » Jquery »

actualizar div con jquery

Estas en el tema de actualizar div con jquery en el foro de Jquery en Foros del Web. Hola amigas y amigos una duda. Para actualizar un div uso este codigo, por ejemplo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original $ ( ".div_contenido" ...
  #1 (permalink)  
Antiguo 21/07/2020, 10:55
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 5
actualizar div con jquery

Hola amigas y amigos una duda.
Para actualizar un div uso este codigo, por ejemplo:

Código Javascript:
Ver original
  1. $(".div_contenido").load(" .div_contenido");

Pero como se hace para actualizar un div de una archivo que esta en otra ruta distinta?

seria algo como esto?:

Código Javascript:
Ver original
  1. $("ruta/archivo.php .div_contenido").load(" ruta/archivo.php .div_contenido");

Es que lo estoy intentado asi y no me sale.

Cualquier ayuda es bienvenida ,gracias de antemano.
  #2 (permalink)  
Antiguo 21/07/2020, 17:46
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: actualizar div con jquery

Javascript trabaja de forma local, por lo que tengo entendido solo afecta a la pagina en la que fue cargado, lo que puedes hacer o al menos lo que yo aria, es utilizar sockets para notificar a la otra pagina cuando se actualiza algo

El como trabajar con sockets depende mucho del lenguaje que utilices, con NodeJS suele ser una tarea bastante fácil.
puedes revisar socket.io

Aunque claro, este concepto es mucho mas complejo que el uso de jQuery
  #3 (permalink)  
Antiguo 23/07/2020, 12:26
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 5
Respuesta: actualizar div con jquery

Hola Arturo, gracias por contestar, bueno la verdad es que lo de soket creo que se me escapa a mis conocimientos.

Creo que será mejor exponer de manera mas detallada el problema que tengo, sera lo mejor.

Lo explico:

Tengo un combobox en html, el cual tiene una serie de "options" hasta ahí todo normal.

Dichas options las recoge mediante php con un while extrayendo el texto de las options de una base de datos y apareciendo en el combobox lógicamente.


En otro lado de la pagina web se crean nuevos contenidos para nuevas options.

Y tienen que figurar dentro de este combobox.

un ejemplo, tengo este select:

Código HTML:
Ver original
  1. <div id="div_contenedor">
  2.  
  3. option...pizza
  4. option... kebab
  5.  
  6. </div>

Y en otro lado de la pagina creo un nuevo contenido para una nueva option y que se carge en ese select.

creo : hamburguesa.

con lo cual se carga en el select quedando asi:

Código HTML:
Ver original
  1. <div id="div_contenedor">
  2.  
  3. option...pizza
  4. option... kebab
  5. option...hamburguesa
  6.  
  7. </div>

bien para cargar la nueva option, lo que hago es usar jquery para refrescar el div contenedor del select de esta forma:

$("#div_contenedor").load(" #div_contenedor");

y bueno lo hace bien, en el select aparece la option de la hamburguesa tambien.


Pero el problema viene ahora:

al ejecutar el jquery load, lo que sucede es que aparece dos divs con el mismo id llamado div_contenedor anidados, es decir algo asi:

Código HTML:
Ver original
  1. <div id="div_contenedor">
  2. <div id="div_contenedor">
  3.  
  4. option...pizza
  5. option... kebab
  6. option...hamburguesa
  7.  
  8. </div>
  9. </div>


Y esto es un problema para mi.

Alguien podria ayudarme con esto?

Gracias de antemano.
  #4 (permalink)  
Antiguo 23/07/2020, 15:42
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: actualizar div con jquery

Ya veo, el caso es muy diferente a lo que tenia en mente, identificando tus problemas

traes o estas aprendiendo conceptos de la vieja escuela, no deberías usar jQuery para esto, pero si quieres seguir este camino
- en lugar de load usa una función ajax ya sea get o post
https://api.jquery.com/jquery.post/
- una vez obtenida la respuesta usa replaceWith, dado que la respuesta es un HTML e incluye el contenedor no debes agregar contenido sino reemplazarlo
https://api.jquery.com/replaceWith/


Como consejo en lugar de jQuery prueba utilizar fetch o axios, en lugar de retornar un HTML seria conveniente retornar un JSON, en lugar de reemplazar o cargar todo ese contenedor solo añade la nueva opción al select
https://developer.mozilla.org/es/doc...de/appendChild
  #5 (permalink)  
Antiguo 24/07/2020, 02:43
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 5
Respuesta: actualizar div con jquery

vieja escuela?, me has hecho sentirme viejecito jajajajaj.

Arturo, una cosa, se que es un poco enrevesado pero a ver si puede ser esto que te comento como solucion a mi problema:

en jquery para recargar una web se puede usar:

Código Javascript:
Ver original
  1. location.reload();

Bien, dicho esto imaginate el siguiente escenario.

Una web que por defecto tiene una capa oculta y que hacendo click en un boton se hace visible mediante jquery.

Una vez que este div esta visible , hacemos un "location.reload();"

Al hacer esto el div vuelve a su estado inicial es decir ocultandose de nuevo.

la pregunta es:

¿Habria alguna manera de que al hacer "location.reload();", dicho div siguiera estando

visible sin tener que hacer de nuevo click al boton que lo hace visible?

Quien dice "location.reload();", podria ser otro codigo jquery que permitiera hacer esto logicamente.
  #6 (permalink)  
Antiguo 24/07/2020, 04:58
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: actualizar div con jquery

Cita:
Iniciado por mensajeescrito Ver Mensaje
vieja escuela?, me has hecho sentirme viejecito jajajajaj.

Arturo, una cosa, se que es un poco enrevesado pero a ver si puede ser esto que te comento como solucion a mi problema:

en jquery para recargar una web se puede usar:

Código Javascript:
Ver original
  1. location.reload();

Bien, dicho esto imaginate el siguiente escenario.

Una web que por defecto tiene una capa oculta y que hacendo click en un boton se hace visible mediante jquery.

Una vez que este div esta visible , hacemos un "location.reload();"

Al hacer esto el div vuelve a su estado inicial es decir ocultandose de nuevo.

la pregunta es:

¿Habria alguna manera de que al hacer "location.reload();", dicho div siguiera estando

visible sin tener que hacer de nuevo click al boton que lo hace visible?

Quien dice "location.reload();", podria ser otro codigo jquery que permitiera hacer esto logicamente.
Puedes usar una cookie o el almacenamiento local, de tal forma que puedas guardar un valor que modificarías cada vez que muestres u ocultes el elemento. Luego, al recargar la ventana, solo tendrías que evaluar el valor en cuestión. Por ejemplo, si el valor fuera 1, muestras al elemento; y si fuera 2, lo ocultas.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 24/07/2020, 09:42
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: actualizar div con jquery

Cita:
vieja escuela?, me has hecho sentirme viejecito jajajajaj.
No te sientas, yo tambien ya estoy viejo pero hay que actualizarlos, el hecho que de aun quieras seguir usando jquery para esto en especifico es lo que me hizo decirlo.

-----

Dicho lo anterior, usando el reload como bien ya te dijeron tendrás que hacer uso de una cookie o localstorage, pero ademas tendrás que implementar otra función que lea esa cookie/localstorage cada que carga el sitio.

En pocas palabras, te complicas la vida, lo peor de todo esto es que estarás dando una muy mala experiencia de usuario (UX)

Etiquetas: Ninguno
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 09:01.