Foros del Web » Estrategias Digitales y Negocios Online » Negocios »

que me faltaria para que funcione de forma asincronica esta funcion js

Estas en el tema de que me faltaria para que funcione de forma asincronica esta funcion js en el foro de Negocios en Foros del Web. Hola, no consigo hacer funcionar el codigo javascript de forma asincronica, os comento un poco, trata de un select donde a traves del valor elejido ...
  #1 (permalink)  
Antiguo 12/09/2011, 17:22
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
que me faltaria para que funcione de forma asincronica esta funcion js

Hola, no consigo hacer funcionar el codigo javascript de forma asincronica, os comento un poco, trata de un select donde a traves del valor elejido en el select cambio una consulta sql dinamica de forma asincronica hasta aqui todo va bien, pero luego esta consulta la paso a un array php que vuelco a un array javascript donde creo una funcion javascript para mostrar los resultados en un intervalo de tiempo x pero no me funciona, osea que la consulta si me la cambia de forma asincronica pero no se como hacer para que me actualice la funcion javascript de forma asincronica, muestro codigo por si alguien me quiere ayudar.

aqui la funcion para crear un objeto y recuperar datos de forma asincronica
funcion js

Código Javascript:
Ver original
  1. function objetoAjax()   {
  2.     if (window.XMLHttpRequest)
  3.         _ajax = new XMLHttpRequest();
  4.     else
  5.         if (window.ActiveXObject)
  6.             _ajax = new ActiveXObject("Microsoft.XMLHTTP");
  7.         else
  8.             _ajax = false;
  9.     return _ajax;
  10. }
  11.  
  12.  
  13. function pedir(dato) {
  14. Ajax = objetoAjax();
  15. Ajax.open("get","recuperar.php?tienda=" + dato, true);
  16. Ajax.onreadystatechange = function() {
  17.   if (Ajax.readyState == 4 && (Ajax.status == 200 || Ajax.status == 501)){
  18.    document.getElementById('resultado').innerHTML=Ajax.responseText;
  19.    }
  20.  }
  21.  Ajax.send(null);
  22. }

este es el script php donde tengo el select y el div dinamico donde me tiene que mostrar los valores

mostrar.php

Código PHP:
Ver original
  1. <html>
  2.     <head>
  3.         <script type="text/javascript" language="javascript" src="funcion.js"></script>
  4.        
  5.     </head>
  6.     <body>
  7.  
  8. <?php
  9. $con=mysql_connect("localhost","root","");
  10. $consulta="select * from tienda_online";
  11. $reg=mysql_query($consulta);
  12. ?>
  13.  
  14. <select name="tienda" id="tienda" onchange="pedir(document.getElementById('tienda').value)">
  15.     <option value="">seleciona producto</option>
  16. <?php
  17.  while ($row=mysql_fetch_assoc($reg)){
  18. ?>
  19.     <option value="<?php echo $row['id_producto']; ?>"><?php echo $row['producto'];?></option>
  20. <?php  
  21. }
  22. ?>
  23. </select>
  24.  
  25. <div id="consulta"></div>
  26.     </body>
  27. </html>

aqui el codigo donde hago la llamada y tengo la funcion javascript

recuperar.php

Código PHP:
Ver original
  1. <?php
  2. $consulta=mysql_query ("SELECT * FROM tienda_online where id_producto=".$_GET['tienda']."");
  3.  
  4. $producto1 = array();
  5. $producto2 = array();
  6.     while ($row = mysql_fetch_array($consulta)){
  7.        $producto1[]= $row['producto1'];
  8.        $producto2[]= $row['producto2'];
  9.     }
  10. ?>
  11. <script type="text/javascript">
  12.  
  13. var producto1 = new Array();
  14. var producto2 = new Array();
  15.  
  16. <?php
  17. for ($i = 0, $total = count($producto1); $i < $total; $i ++)
  18. echo "\nproducto1[$i] = '$producto1[$i]';";
  19. for ($i = 0, $total = count($producto2); $i < $total; $i ++)
  20. echo "\nproducto2[$i] = '$producto2[$i]';";
  21. ?>
  22.  
  23. var pos = 0;
  24.  function MostrarRegistos(){
  25.    
  26.     for (i=1;i<=2;i++){
  27.        
  28.              prod1 = producto1[pos];
  29.              prod2 = producto2[pos];
  30. document.getElementById("registro"+i).innerHTML ='<table><tr><td>'+prod1+'</td><td>'+prod2+'</td></tr></table>';
  31.  
  32.                      
  33.                      pos++;
  34.                 if(pos>=(producto1.length)){pos = 0}
  35.             }
  36.         }
  37.            
  38.         window.onload = MostrarRegistos;
  39.        
  40.         setInterval(MostrarRegistos,8000)
  41.        
  42. </script>
  43.    
  44.            
  45.             <div class='primero' id="registro1"></div>
  46.             <div class='segundo' id="registro2"></div>

no se como tendria que hacer para que cuando elija una opcion en el select aparte de cambiarme la consulta me actualice los datos de la funcion js de forma asincronica, espero que alguien me pueda ayudar.

Saludos.
  #2 (permalink)  
Antiguo 13/09/2011, 01:39
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: que me faltaria para que funcione de forma asincronica esta funcion js

Hola:

En principio no veo la capa donde devuelves los datos pedidos:

tienes una capa vacía con id="consulta" y lo entragas a una capa con id="resultadp"...

Pero, suponiendo que en tu máquina esté bien, responseText es de tipo "text/plain" o sea texto plano...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 13/09/2011, 02:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: que me faltaria para que funcione de forma asincronica esta funcion js

caricatos tienes razon el id de la capa es diferente, ya lo puse bien, referente a responseText lo tengo de tipo texto plano porque es donde recupero el dato de la consulta sql, pero claro no se como hacer para que cuando recupere esta consulta de forma asincronica incrementar ajax para que me actualice los datos de los arrays de javascript de forma asincronica, osea que atraves del select me muestre los los datos de js y me los cambie de forma asincronica con ajax, alguna ayuda?
saludos

Última edición por pithon; 13/09/2011 a las 09:26

Etiquetas: ajax, funcion, javascript, js, mysql, php, select, formulario
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 23:10.