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

Dividir contenido llamado por ajax

Estas en el tema de Dividir contenido llamado por ajax en el foro de Frameworks JS en Foros del Web. Buenas, resulta que tengo una pagina en la que el contenido esta dividido en 2, una cabezera, y luego el contenido en si. La pagina ...
  #1 (permalink)  
Antiguo 22/01/2011, 23:12
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 13 años, 5 meses
Puntos: 4
Dividir contenido llamado por ajax

Buenas, resulta que tengo una pagina en la que el contenido esta dividido en 2, una cabezera, y luego el contenido en si. La pagina trabaja con ajax, y el contenido y la cabezera estan partes distintas de la pagina, por lo que habia pensando en hacer que el llamado de ajax, llamara a 2 paginas a la vez, pero despues me entere que se puede dividir el contenido que llama ajax. Y encontre este codigo para hacerlo:

Código:
//Esto es JavaScript
//Este eval es el que hace la magia, convierte 
//la respuesta en un objeto del lado del cliente,
//al que puedes acceder a la informacion haciendo
//referencia a los metodos.
respuesta=eval(ajax.responseText);
respuesta=respuesta[0];
document.getElementById(divResultado1).innerHTML=respuesta.respuesta_ajax_div1;
document.getElementById(divResultado2).innerHTML=respuesta.respuesta_ajax_div2;
document.getElementById(divResultado3).innerHTML=respuesta.respuesta_ajax_div3;
El problema es que no se como adaptar mi codigo para q funcione de esa manera. Osea no termino de enteder como ni que cambiar para haga lo q hace el codigo de arriba.
Mi codigo ajax es:

Código:
var Conexion=false; // Variable que manipula la conexion.
 
// funcion que realiza la conexion con el objeto XMLHTTP...
function Conectar()
{
    if(window.XMLHttpRequest)
        Conexion=new XMLHttpRequest(); //mozilla
    else if(window.ActiveXObject)
        Conexion=new ActiveXObject("Microsoft.XMLHTTP"); //microsoft
}
 
function Contenido(idContenido)
{
    /* readyState devuelve el estado de la conexion. puede valer:
     *  0- No inicializado (Es el valor inicial de readyState)
     *  1- Abierto (El método "open" ha tenido éxito)
     *  2- Enviado (Se ha completado la solicitud pero ningun dato ha sido recibido todavía)
     *  3- Recibiendo
     *  4- Respuesta completa (Todos los datos han sido recibidos)
     */
 
    // En espera del valor 4
    if(Conexion.readyState!=4) return;
    /* status: contiene un codigo enviado por el servidor
     *  200-Completado con éxito
     *  404-No se encontró URL
     *  414-Los valores pasados por GET superan los 512
     * statusText: contiene el texto del estado
     */
    if(Conexion.status==200) // Si conexion HTTP es buena !!!
    {
        /* Modificamos el identificador temp con el valor recibido por la consulta
         *  Podemos recibir diferentes tipos de datos:
         *  responseText-Datos devueltos por el servidor en formato cadena
         *  responseXML-Datos devueltos por el servidor en forma de documento XML
         */
        document.getElementById(idContenido).innerHTML=Conexion.responseText;
    }else{
        document.getElementById(idContenido).innerHTML=Conexion.status+"-"+Conexion.statusText;
    }
    
    Conexion=false;
}
 
function Solicitud(Servidor,idContenido)
{
    // Si ya esta conectado, cancela la solicitud en espera de que termine
    if(Conexion) return; // Previene uso repetido del boton.
    
    // Realiza la conexion
    Conectar();
    
    // Si la conexion es correcta...
    if(Conexion)
    {
        /* Preparamos una conexion con el servidor:
         *  POST|GET - determina como se envian los datos al servidor
         *  true - No sincronizado. Ello significa que la página WEB no es interferida en su funcionamiento
         *  por la respuesta del servidor. El usuario puede continuar usando la página mientras el servidor
         *  retorna una respuesta que la actualizará, usualmente, en forma parcial.
         *  false - Sincronizado */
        Conexion.open("GET",Servidor,true);
 
        // Cada vez que el estado de la conexión (readyState) cambie se ejecutara el contenido de esta "funcion()"
        Conexion.onreadystatechange=function()
        {
            Contenido(idContenido);
        }
        
        /* Realiza la solicitud al servidor. Puede enviar una cadena de caracteres, o un objeto del tipo XML
         * Si no deseamos enviar ningun valor, enviamos null */
        Conexion.send(null);
    }else
        document.getElementById(idContenido).innerHTML="No disponible";
}
 
window.onload=function()
{
    Solicitud("seccion/home.html","pagina"); // Inicializamos con la primera pagina
}
  #2 (permalink)  
Antiguo 22/01/2011, 23:31
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Dividir contenido llamado por ajax

Hola:

Parece que lo que recibe ajax es un objeto (seguramente json), así que lo que necesitas es crearlo con el lenguaje que tengas en tu servidor.
Otra alternativa sería crear esos contenidos a tu manera, y luego también recibirlos así...

Por ejemplo puedes crear desde un array php una cadena con el método explode, usando un delimitador especial, que luego uses con javascript y el método split.

Otra alternativa sería trabajar en formato xml.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 27/01/2011, 19:06
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 13 años, 5 meses
Puntos: 4
Respuesta: Dividir contenido llamado por ajax

la respuesta. No entendi muy bien, el tema es que soy nuevo en el tema, en ajax me refiero. Hace mucho que trabajo con ajax, pero siempre lo use muy basico, simplemente para recargar un contenido simple si solo con texto.

Lo q no entendi muy buen fue el tema del lenguaje q usa el servidor. Mi host correo sobre linux y apache.

El lenguaje de la pagina es html con css, ya habia leido algo de json, pero no se mucho.

Perdon mi ignorancia

Etiquetas: ajax, contenido, dividir, llamado
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 14:01.