Ver Mensaje Individual
  #70 (permalink)  
Antiguo 11/03/2010, 09:32
Mr_Raymon
 
Fecha de Ingreso: diciembre-2009
Ubicación: España
Mensajes: 119
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Combinar Lightbox (jQuery) con datos en XML

El codigo que has cogido imagino que lo habras copiado del ejemplo cuando me ayudaste a cargar simplemente el XML sin el array que puse para PROYECTOS y otro para NOTICIAS.

Hace mas de dos semanas que puse el codigo con el que trabajamos para sacar informacion con array y no funcionaba:

Código Javascript:
Ver original
  1. $.ajax({
  2.  
  3. type: "GET",
  4.  
  5. url: "xml/trabajos.xml",
  6.  
  7. async: false,
  8.  
  9. dataType: "text",
  10.  
  11. success: function(data) {
  12.  
  13. function stringToDoc(s) {
  14. var xml;
  15. if (window.ActiveXObject) {
  16. xml = new ActiveXObject('Microsoft.XMLDOM');
  17. xml.async = 'false';
  18. xml.loadXML(s);
  19. return xml;
  20. }
  21. else
  22. xml = (new DOMParser()).parseFromString(s, 'text/xml');
  23. return (xml && xml.documentElement && xml.documentElement.tagName
  24. != 'parsererror') ? xml : null;
  25. };
  26. xml = stringToDoc(data);
  27.  
  28. items = new Array(4);
  29.  
  30. items[0] = "web";
  31. items[1] = "multimedia";
  32. items[2] = "movil";
  33. items[3] = "erp";
  34.  
  35. items.each(function(web){
  36.  
  37. $(xml).find(web).each(function(){
  38.  
  39. imagen = $(this).find('imagen').text()
  40. info = $(this).find('info').text()
  41. emp = $(this).find('empresa').text()
  42. tecno = $(this).find('tecnologia').text()
  43. miniatura = $(this).find('miniatura').text()
  44. proyecto = $(this).find('proyecto').text()
  45.  
  46. s_web = '<li><a href="'+imagen+'" rel="prettyPhoto[web]" title="<strong>'+proyecto+'</strong><br/>'+emp+'<br/>'+info+'<br/>'+tecno+'"><img src="'+miniatura+'" class="imagen_hover"></a></li>';
  47.  
  48. $(".web").append(s_web)
  49.  
  50. }) // fin de each
  51.  
  52. }) // fin del each por categorias
  53.  
  54. error: function(avisoErrorProyecto) {
  55.  
  56. alert("No ha sido posible cargar los datos. Por favor, intentelo mas tarde.");
  57.  
  58. }
  59.  
  60. })  // fin de llamada ajax
  61.  
  62. }
Estoy trabajando con PROYECTOS ya que las secciones "web", "multimedia", "movil" y "erp" corresponden a este tema (por asi decirlo). Por lo tanto no hay divisor para noticias y lo he adaptado para PROYECTOS.

El codigo de jQuery a ACTUAL es el siguiente:

Código Javascript:
Ver original
  1. //INICIO DE LAS FUNCIONES CORRESPONDIENTES //
  2. $(document).ready(aplicaciones)
  3.  
  4. function aplicaciones(){
  5.    
  6. // Carga del XML en AJAX
  7.  
  8.     $.ajax({
  9.    
  10.     type: "GET",
  11.    
  12.     url: "xml/trabajos.xml",
  13.    
  14.     async: false,
  15.    
  16.     dataType: "text",
  17.    
  18.     success: function(data) {
  19.    
  20.     function stringToDoc(s) {
  21.     var xml;
  22.     if (window.ActiveXObject) {
  23.     xml = new ActiveXObject('Microsoft.XMLDOM');
  24.     xml.async = 'false';
  25.     xml.loadXML(s);
  26.     return xml;
  27.     }
  28.     else
  29.     xml = (new DOMParser()).parseFromString(s, 'text/xml');
  30.     return (xml && xml.documentElement && xml.documentElement.tagName
  31.     != 'parsererror') ? xml : null;
  32.     };
  33.     xml = stringToDoc(data);
  34.  
  35.     var items = ["web","multimedia","movil","erp"];
  36.  
  37.     $.each(items, function(index, value){
  38.  
  39.     $(xml).find(value).each(function(){
  40.  
  41.     imagen = $(this).find('imagen').text()
  42.     info = $(this).find('info').text()
  43.     emp = $(this).find('empresa').text()
  44.     tecno = $(this).find('tecnologia').text()
  45.     miniatura = $(this).find('miniatura').text()
  46.     proyecto = $(this).find('proyecto').text()
  47.    
  48.     s_web = '<li><a href="'+imagen+'" rel="prettyPhoto[web]" title="<strong>'+proyecto+'</strong><br/>'+emp+'<br/>'+info+'<br/>'+tecno+'"><img src="'+miniatura+'" class="imagen_hover"></a></li>';
  49.    
  50.     $(".web").append(s_web)
  51.  
  52.     }) // fin de each xml
  53.  
  54.     }) // fin de each de categoria
  55.  
  56.     }
  57.  
  58.     }) // fin de llamada ajax
  59.  
  60.     } // fin de llamada dom ready
La idea es colocar cada seccion en cada <ul> ya que lo que habra dentro seran elementos <li> con la informacion. Es mas correcto asi, por lo menos a mi parecer.

Espero que no te hagas un lio con todo este rollo que he escrito.