Página 1 de 1

Poner el resultado de AJAX en varios DIVs

NotaPublicado: 2006-08-08 20:21 @889
por rookie
Saludos a todos

Tengo mi codigo en JS desde el cual llamo a una rutina en PHP, dicha rutina consulta una base de datos y devuelve el resultado a un DIV (ajax).

El problema es : como puedo hacer para que cada registro devuelto por el PHP aparezca en un <div> distinto, para asi formar una lista de divs por cada resultado de la consulta, necesito que apararezcan separados para poder tratarlos de manera independiente dentro de la página.

Hasta el momento todo el resultado me lo devuelve a un solo DIV, eso es ideal cuando se trata de un select en lugar de un div, pero como hacer que apararezcan en divs independientes???

Gracias de antemano por su ayuda.

NotaPublicado: 2006-08-09 04:22 @223
por explorer
Aquí tienes un ejemplo:
http://meneame.net/sneak.php

Si analizas el código fuente html, verás que en la página existen varios div que forman las distintas filas de la tabla.

Cuando llega la petición Ajax, el código sólo tiene que saber cuántas filas nuevas hay (para hacer la animación del cambio de color en las primeras filas) y luego va rellenando los contenidos en los divs, como si fueran las filas de una tabla.

Esta es una solución: rellenar divs ya creados en la trama del html, pero estoy seguro que con JavaScript se pueden crear nuevas estructuras html. Entonces, en este otro caso se trataría de crear varios div dentro de otro que ya resida en el html inicial.

NotaPublicado: 2006-08-09 16:42 @738
por rookie
Saludos explorer.

Intenté con la segunda solución que me propusiste y resultó aunque no a un 100%. Hice un div en HTML (cliente) y desde PHP(server) intento crear más div dentro del que ya está creado en HTML. Pero todos los resultados los mete dentro de un solo DIV, el de html. Pongo el codigó.

en HTML:
Código: Seleccionar todo
<div id="createNew"  align="center" style="width: 400px; height: 50px";>
           
      <h3>Seleccione el tipo de aplicacion</h3>
      <select name="app" id="app" onChange="habilita_op()" >  <!--habilita_op es la funcion que manda los datos de este select al PHP-->
      <?=$llena_aplic; ?></select>
   </div>
       
   <div id="group1" class="section" style="width: 420px;">
      <h3 class="handle">Administradores</h3>
      <div id="adm" class="lineitem">   </div>  <!-- Aqui deben llegar los datos devueltos  por el PHP y es correcto, pero llegan todos en conjunto y yo lo que busco es separar cada resultado en un DIV distinto -->
   </div>

en PHP
Código: Seleccionar todo
// solo es una parte de la funcion, pero es la parte importante
$query= "SELECT * FROM tabla1 '; ";
$database->setQuery( $query );
$rel_doctos=$database->loadObjectList();
if ( $database->getErrorMsg()) { echo "Hubo un error  contacta al administrador"; exit(); }
foreach ($rel_doctos as $value) {  //aqui intento crear los div para cada resultado de la consulta, pero los mete todos dentro de un solo div. 
    echo "<div class='lineitem'>".$value->desc_menu."</div>";
}


Sale bien, excepto que todos los resultados no los divide en cada DIV, sino que los manda todos en un solo DIV .

NotaPublicado: 2006-08-09 19:22 @849
por explorer
No tengo ni idea de lo que hace loadObjectList, pero lo que he visto por ahí, en algún foro, es que existe la posibilidad de que en el bucle foreach sólo exista un valor en la variable $rel_doctos.

Como crear los divs desde javascript

NotaPublicado: 2006-08-16 09:34 @440
por rookie
Saludos a todos.

Ya intente de varias maneras hacer que los cada uno resultados devueltos por PHP se coloquen en DIVs distintos, independientes. Al parecer solo se conseguira cuando pueda crear los divs con Javascript de cada registro devuelto por la consulta realizada en PHP.
Esto es posible???

De tal manera que la linea
<div id='adm_$i' class='lineitem'> valor_a_desplegar </div>

Se pueda crear desde Javascript.

NotaPublicado: 2006-08-16 13:41 @611
por AkonD
Solo tienes que desplegar html desde javascript usando el objecto document de javascript...

Ejemplo:

document.write("<div id='adm_$i' class='lineitem'> " + valor_a_desplegar + "</div>");

valor_a_desplegar seria una variable de js..

salu2

Solucion : Recargar toda la pagina

NotaPublicado: 2006-08-17 16:03 @710
por rookie
Saludos a todos.

Bien.. al parecer quedo resuelto el problema, tuve que colocar mi funcion de PHP en el mismo script y en la misma forma, asi que cuando hago un SUBMIT me reconozca los nuevos divs que coloco desde el PHP.

Esto no me funciono teniendo a PHP independiente e intentando que colocara los nuevos divs de forma independiente dentro del DIV donde se envia la respuesta del Httpd_request.
Si alguien se interesa por el codigo puedo hacerselo llegar por mail.

Gracias por su ayuda.