Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/07/2012, 00:27
Avatar de lacho
lacho
 
Fecha de Ingreso: enero-2008
Mensajes: 26
Antigüedad: 16 años, 3 meses
Puntos: 0
Busqueda Refresco de sitio con ajax

Hola foro, escribo porque tengo un pequeño problema, resulta que tengo un sitio web que estoy desarrollando pero me he topado con un problemita.

Voy por partes y codigo para contextualizar a ver si alguien me puede indicar donde esta el error.

tengo un index donde cargo la pagina principal, resulta que en este index tengo un div denominado ventana, en donde cargo el contenido deseado y va algo asi (lo pongo simplificado para ver solo lo que nos da el camino hasta el problema)

Código PHP:
<table width="910" border="0" >
  <tr valign="top" align="center">
echo "
        <td height='176' colspan='2'><img src='recursos/menu_s.png' alt='menu' width='878' height='176' border='0' usemap='#Map'>
          <map name='Map' id='Mapa'>
          <area shape='rect' coords='303,144,389,166' href='index.php?task=pry' target='_self' alt='Proyectos'>
          </map>
        </td>";
  </tr>
  <tr>
    <td align="center" valign="top">&nbsp;</td>
    <td valign="top" height="460"><div id='ventana'><?php
        
require_once 'source/ClSitioWeb.php';
        
$print= new SitioWeb;
        switch(
$_GET['task'])
        {            
            case 
'pry':
                
$print->ImprimirFrmProyectos();
            break;            
        }
    
?></div></td>
  </tr>
</table>
aqui como podemos ver hacemos una instancia del sitio web y cuando el url del mapa traiga la tarea 'pry' ejecuta la lista de categorias de proyectos. Pues bien, resulta que he usado un plug in para que el scrollbar se vea mejor y ese es en si mi problema, yo selecciono uno y veo todos los proyectos ejecutados dentro de esa categoria, hasta alli la barra funciona bien, pero al hacer el salto al contenido del proyecto esta aparece pero no funciona, no se si es porque uso ajax para generar el nuevo contenido... bueno va algo asi despues de la llamada del codigo anterior (ClSitioWeb.php)

Código PHP:
public function ImprimirFrmProyectos()
    {
        if (isset(
$_GET['id']))
        {
            switch(
$_GET['id'])
            {
                case 
'1':
                if (isset(
$_GET['su']))
                {
                    
$this->ImprimirProyectoConstruccionDisenio($_GET['su']);
                }
                else
                    {
$this->ImprimirFrmConstruccionDisenio();}
                break;
            }
        }
        else
        {
        echo 
"<table width='880' align='right'  border='0'>";
        echo 
"<tr>";
            echo 
"<td valign='top'>";
            echo 
"<div id='Galeria' align='right'><br>";
                
$this->ImprimirGaleriaPrincipal();
            echo 
"<p align='right'><img src='recursos/time.png' alt='' width='127' height='90' /><p></div>";
            echo 
"</td>";
            echo 
"<td width='400' valign='top' align='left'>";
            echo 
"<div id='FrameDatos'>";
                echo 
"<table width='325' border='0'>";
                echo 
"<tr>";
                    echo 
"<td rowspan='5' valign='top'><div id='FrameDatos'><img src='recursos/AdornoMenu.png' alt='SubMenu' width='325' height='450' /></div></td>";
                    echo 
"<td height='90'><a class='MenuSecundario' name='FrameDatos' href='frame.php?task=pry&amp;id=1' target='_parent'>Contrucci&oacute;n y Dise&ntilde;o</a></td>";
        echo 
"</table>";
public function 
ImprimirFrmConstruccionDisenio()
    {    
        echo 
"<script type='text/javascript'>
                var mask = document.getElementById('scroll-mask');
                var content = document.getElementById('scroll-content');
                new Dragdealer('scroll-bar',
                {
                    horizontal: false,
                    vertical: true,
                    yPrecision: content.offsetHeight,
                    animationCallback: function(x, y)
                    {
                        var margin = y * (content.offsetHeight - mask.offsetHeight);
                        content.style.marginTop = String(-margin) + 'px';
                    }
                });
                </script>    
        "

        echo 
"<table width='404' border='0' >";
        echo 
"<tr>";
            echo 
"<td align='right' valign='middle'><img src='recursos/TemaUno.png'></td>";
            echo 
"<td valign='middle' width='80' height='95'><br><a class='MenuSecundario' href='index.php?task=pry&id=1'>Contrucci&oacute;n y Dise&ntilde;o</a></td>";
        echo 
"</tr>"//colspan='2'
        
echo "<tr><td valign='top'  align='left'>";
        echo 
"<div class='top-spaced right-float'>
            <div id='scroll-bar' class='dragdealer rounded-cornered'>
            <div class='red-bar handle'></div>
            </div>
        </div>"
;
        
//echo "<div id='scroll'>";
            
echo "<div id='scroll-mask'><div id='scroll-content'><p>";
            echo 
"<ul type='circle'>";
            echo 
"<li><a class='EnlaceTipo_1' href=javascript:EjecutarURL('frame.php?task=pry&id=1&su=11','ventana')>Dise&ntilde;o y Construcci&oacute;n de Oficinas Administrativas, Laboratorios, Auditorio y Aulas de la Universidad Francisco Gavidia</a></li>";
            echo 
"</ul>";
            echo 
"</p></div></div>";
        echo 
"</td>";
        echo 
"<td>&nbsp;</td></tr>";
        echo 
"</table>";
    }
public function 
ImprimirProyectoConstruccionDisenio($seleccion)
    {
echo 
"<script type='text/javascript'>
                var mask = document.getElementById('scroll-mask');
                var content = document.getElementById('scroll-content');
                new Dragdealer('scroll-bar',
                {
                    horizontal: false,
                    vertical: true,
                    yPrecision: content.offsetHeight,
                    animationCallback: function(x, y)
                    {
                        var margin = y * (content.offsetHeight - mask.offsetHeight);
                        content.style.marginTop = String(-margin) + 'px';
                    }
                });
                </script>    
        "

        switch(
$seleccion)
        {
            case 
'11':
                        echo 
"<input type='hidden' id='elurl' value='frame.php?task=pry&id=1&su=11'/>";
        echo 
"<input type='hidden' id='img' value='1'/>";
        echo 
"<center>";
        echo 
"<table  border='1' hspace='0' cellpadding='0' cellspacing='4'>";
        echo 
"<tr>";
            echo 
"<td colspan='3' align='right'><a href=javascript:BackProyecto('ventana',12);><img src='recursos/atras.png'></a><a href=javascript:NextProyecto('ventana',12);><img src='recursos/adelante.png'></a><a href='index.php?task=pry'><img src='recursos/cerrar.png'></a></td>";
        echo 
"</tr>";
          echo 
"<tr valign='top'>";
            echo 
"<td rowspan='2' align='center' class='ColorGaleriaDerecha' >"
            echo 
"<br>algo;
            echo "
</td>";    
            echo "
<td valing='middle' align='right' width='80' height='79'>una imagen</td>";
            echo "
<td valign='middle' width='80' height='79'><class='MenuSecundario' href='index.php?task=pry&id=1'>tema</a></td>";
          echo "
</tr>";
        echo "
<tr>";
            echo "
<td>";
            echo "
<div class='top-spaced right-float'>
            <
div id='scroll-bar' class='dragdealer rounded-cornered'>
            <
div class='red-bar handle'></div>
            </
div>
            </
div>";
            echo "
<div id='scroll-mask'><div id='scroll-content'>";
            echo "
<p align='justify' class='Tema_1'>";
            echo "
tema";
            echo "
</p>";
            echo "
<p align='right' class='Monto_1'>";
                echo "
Monto : $ <br>";
                echo "
Area de Construcción :  m2<br>";
                echo "
Período de Ejecución Septiembre 2010 a Diciembre 2011<br>";
                echo "
Propietario ";
            echo "
</p>";
            echo "
<p align='justify' class='Descripcion_1'>";
            echo "
el contenido del tema";
            echo "
</p>";
            echo "
</div></div></td>";
            echo "
<td>&nbsp;</td>";
        echo "
</tr>";
        echo "
</table>";
        echo "
<center>";
                        break;
                }
      } 
ahora bien para contextualizar
frame.php
Código PHP:
require_once 'source/ClSitioWeb.php';
        
$print= new SitioWeb;
        switch(
$_GET['task'])
        {
            case 
'pry':
            if (isset(
$_GET['id']))
            {
                if (isset(
$_GET['su']))
                {
                    
$print->ImprimirFrmProyectos($_GET['id'],$_GET['su']);
                }
                else
                {
$print->ImprimirFrmProyectos($_GET['id']);}
            }
            break;            
        } 
EjecutarURL
Código:
function EjecutarURL(url, id_contenedor)
{
	var pagina_requerida = false
		if (window.XMLHttpRequest) 
		{// Si es Mozilla, Safari etc
			pagina_requerida = new XMLHttpRequest()
		}
		else if (window.ActiveXObject)
		{ // pero si es IE
			try 
			{
				pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP")
			} 
			catch (e)
			{ // en caso que sea una versión antigua
				try
				{
					pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
				}
				catch (e){}
			}
		}
		else
		return false
		pagina_requerida.onreadystatechange=function()
		{ // función de respuesta
			cargarpagina(pagina_requerida, id_contenedor,url)
		}
		pagina_requerida.open('GET', url, true) // asignamos los métodos open y send
		pagina_requerida.send(null)
}
	// poniendo en su sitio en la pagina xhtml
function cargarpagina(pagina_requerida, id_contenedor,url)
{
	if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
		{		document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText;	
		}	
}
entonces en si el problema se da en la impresion de ImprimirProyectoConstruccionDisenio, ya que el contenido que se muestra en el php se hace, sin embargo no funciona el script del funcionamiento del scroll.
No se si alguien me puede hechar la mando para poder identificar el problema y porque no ejecuta el script de la funcionalidad