Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/04/2006, 11:26
Avatar de Covids0020
Covids0020
 
Fecha de Ingreso: septiembre-2003
Ubicación: España
Mensajes: 217
Antigüedad: 21 años, 2 meses
Puntos: 1
Gracias a todos!....... ggg xD =P

Ya está arreglado, no usaba debidamente el Ajax.Request, no eran los parametros adecuados... :S
Esa función no usa ningún indicador de elemento en sus variables a diferencia de Ajax.Updater (ese fue mi error). Había que pasarlo como opción en las funciones de respuesta... por ejemplo.

También personalizé las funciones de respuesta en el functions.php.
new Ajax.Request(url, options);new Ajax.Updater(container, url, options);

Así que ajusté la función y usé un Element.Updater para mostrar los datos en vez de un innerHTML.

Ahí queda... por si sirve ;)

Código PHP:
// $n_func: Nombre_de_la_Funcion.
// $element_id: ID de donde se mostrarán los Datos.
// $ajurl: Origen de los Datos.
// $format: Formato HTML con la imagen que activará el JS.

// Antes, Texto, Despues.
function AjaxRequest($n_func,$element_id,$ajurl,$format="") {

// Imagenes Usadas (Opcional):
$img_loading get_bloginfo('template_url')."/img/loading3.gif";
$img_mostrar get_bloginfo('template_url')."/img/display_element.png";
$img_cerrar get_bloginfo('template_url')."/img/close_element.png";

if(
is_string($format))
{
  
$arr_format explode(",",$format);
}

$pre $arr_format[0];
$texto $arr_format[1];
$pos $arr_format[2];

echo 
"
        <script>

        // Cargando:
        var loadingFunc$element_id = function($n_func) {
        Effect.Appear('loading_$element_id');
        }

        // Hecha (Precargo para no ralentizar el render cuando esté completa):
        var successFunc$element_id = function($n_func) {
        Element.update('$element_id',$n_func.responseText);
        }
        
        // Completa (Efectos):
        var handlerFunc$element_id = function($n_func) {
        new Effect.BlindDown('$element_id');
        Element.hide('ver_$element_id');
        Element.hide('loading_$element_id');
        Effect.Appear('ocultar_$element_id', {duration: 2.0});
        }
        
        // Error:
        var errFunc$element_id = function($n_func) {
        alert('Error ' + $n_func.status + ' -- ' + $n_func.statusText);
        }
        
        </script>
"
;
// Código impreso que mostrará las imagenes pertinentes así como el formato XHTML.
echo "
        $pre $texto 
        <img onclick=\"new Ajax.Request('$ajurl',{method: 'post', onLoading:loadingFunc$element_id, onSuccess:successFunc$element_id,  onComplete:handlerFunc$element_id, onFailure:errFunc$element_id}); return false;\" 
        src=\"$img_mostrar\" alt=\"Mostrar $element_id\" id=\"ver_$element_id\" />
        
        <img onclick=\"new Effect.BlindUp('$element_id'); Element.show('ver_$element_id'); Element.hide('ocultar_$element_id'); return false;\" 
        src=\"$img_cerrar\" alt=\"Esconder $element_id\" id=\"ocultar_$element_id\" 
        style=\"display: none;\" />
        $pos
        
        <div id=\"loading_$element_id\" style=\"display: none\" />
          <img src=\"$img_loading\" alt=\"Cargando...\" />
        </div>
        
        <ul id=\"$element_id\" style=\"display: none\"></ul>
"
;


__________________
"La sabiduría comienza donde acaba el conocimiento". Yaris.
http://www.culturadigital.org

Última edición por Covids0020; 01/04/2006 a las 11:52