Foros del Web » Programando para Internet » Javascript »

Como solucionar un script que utiliza ajax?

Estas en el tema de Como solucionar un script que utiliza ajax? en el foro de Javascript en Foros del Web. Hola amigos, bueno no me funciona mi script como yo quedria os cuento un poco, se trata de unos datos, que tengo en la base ...
  #1 (permalink)  
Antiguo 06/09/2011, 16:26
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
Como solucionar un script que utiliza ajax?

Hola amigos, bueno no me funciona mi script como yo quedria os cuento un poco, se trata de unos datos, que tengo en la base de datos, esos datos los vuelco de php a javascript en un array, donde luego a traves de una funcion javascript muestro los datos en pantalla.

Hasta aqui bien el problema lo tengo que yo la consulta sql donde recupero los datos, la tengo dinamica osea que atraves de un select selecionas la consulta que quieres, todo esto lo hago de manera asincronica osea con ajax, pero ahi esta el problema que cuando cambio los datos, si que se me cambia la consulta sql pero no se me cambia los datos en pantalla, porque la funcion javascript no se carga nuevamente solo se me carga la consulta sql, alguna idea?

Saludos.
  #2 (permalink)  
Antiguo 06/09/2011, 16:33
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Como solucionar un script que utiliza ajax?

Podés poner algo de código? sinó va a ser imposible si andamos adivinando...
  #3 (permalink)  
Antiguo 06/09/2011, 20:38
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Como solucionar un script que utiliza ajax?

buenas,
si es que lo comprendí, el código que muestra los resultados deberías tenerlo en una función. luego cuando realices la petición por ajax, invocas la función para mostrar los datos.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 07/09/2011, 03:29
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
Respuesta: Como solucionar un script que utiliza ajax?

realmente los datos que invoco son los valores de los select, con estos valores cambio la consulta sql que tengo, el problema es ese que que cambia la consulta sql de forma asincronica, pero el no me cambio los datos, a no ser que recarge la pagina muestro codigo es algo asin:

con esta funcion creo un div para cambiar los datos con ajax

Código Javascript:
Ver original
  1. function pedir(dato,dato2,dato3) {
  2. Ajax = objetoAjax();
  3. Ajax.open("get","resultados.php?empresa=" + dato + "&nombre=" + dato2 + "&cargo=" + dato3, true);
  4. Ajax.onreadystatechange = function() {
  5.   if (Ajax.readyState == 4 && (Ajax.status == 200 || Ajax.status == 501)){
  6.    document.getElementById('resultado').innerHTML=Ajax.responseText;
  7.  
  8. }
  9.  }
  10.  Ajax.send(null);
  11. }
este me funciona bien pero luego aparte creo un funcion javascript donde como dije antes vuelco los datos de una consulta de un array php a un array javascript, y aqui esta el problema que me cambia la consulta sql pero no me cambia los datos, solo me los cambia si recargo la pagina, en cambio el otro script que si me funciona bien no me pasa esto ya que es php solamente,pero el codigo de javascript no me funciona aunque la consulta si me la cambia pero los datos no.

esta es la funcion que no me funciona:
Código Javascript:
Ver original
  1. var pos = 0;
  2.  function MostrarRegistos(){
  3.    
  4.    
  5.        
  6.             nombre = nombres[pos];
  7.              empresa = empresas[pos];
  8.              cargo = cargos[pos];
  9.            
  10.        
  11. document.getElementById("registro").innerHTML ='Cargo:'+cargo+'<br>'+nombre+'<br>'+empresa+'';
  12.             }
  13.            
  14.         window.onload = MostrarRegistos;
  15.         setInterval(MostrarRegistos,10000)
  16.        
  17.  
  18.    <div id="registro"></div>

yo pongo todo el codigo dentro de la pagina resultados.php para que me salga en el div resultado, pero no me dice que defina los datos


alguna idea?
Saludos

Última edición por pithon; 07/09/2011 a las 03:50
  #5 (permalink)  
Antiguo 07/09/2011, 11:18
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 14 años, 3 meses
Puntos: 45
Respuesta: Como solucionar un script que utiliza ajax?

Buenas,

según el código javascript que muestras el resultado de la petición ajax lo estás metiendo en un elemento con id resultado pero no muestras donde metes esos datos en los arrays que intentas usar para componer el contenido del elemento registro y tampoco muestras cómo se incrementa la variable pos que es una variable global y parece que siempre vale 0. También estás ejecutando la función MostrarRegistros periodicamente y debería ser después de recibir la respuesta con los datos a actualizar como ha dicho zerokilled.
  #6 (permalink)  
Antiguo 09/09/2011, 08:25
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
Respuesta: Como solucionar un script que utiliza ajax?

Hola a todos, Tecna tienes razon los datos donde realizo los arrays para utililzarlos en el div registro lo tengo en el scritp resultado.php como muestra el codigo ajax lo tengo asin:

resultado.php
Código PHP:
Ver original
  1. <?php
  2. //conexion db
  3. //creo una consulta sql llamada $consulta dinamica segun la opcion que elijas
  4. //despues recupero los arrays php para pasarlos a javascript
  5. $nombres = array();
  6. $empresas = array();
  7. $cargos=array();
  8.  
  9. while ($row = mysql_fetch_array($consulta)){
  10. $nombres[]= $row['nombre'];
  11. $empresas[]= $row['empresa'];
  12. $cargos[]=$row['cargo'];
  13. }
  14. ?>
  15.  
  16. <script type="text/javascript">
  17. var nombres = new Array();
  18. var empresas = new Array();
  19. var cargos = new Array();
  20.  
  21. <?php
  22. for ($i = 0, $total = count($nombres); $i < $total; $i ++)
  23. echo "\nnombres[$i] = '$nombres[$i]';";
  24. for ($i = 0, $total = count($empresas); $i < $total; $i ++)
  25. echo "\nempresas[$i] = '$empresas[$i]';";
  26. for ($i = 0, $total = count($cargos); $i < $total; $i ++)
  27. echo "\ncargos[$i] = '$cargos[$i]';";
  28. ?>
  29.  
  30.  
  31.     var pos = 0;
  32.      function MostrarRegistos(){
  33.         for (i=1;i<=3;i++){
  34.                  
  35.                  nombre = nombres[pos];
  36.                  empresa = empresas[pos];
  37.                  cargo = cargos[pos];
  38.                
  39. document.getElementById("registro"+i).innerHTML ='Cargo:'+cargo+'<br>'+nombre+'<br>'+empresa+'';
  40.                 pos++;
  41.                 if(pos>=(nombres.length)){pos = 0}
  42.             }
  43.         }
  44.            
  45.         window.onload = MostrarRegistos;
  46.        
  47.         setInterval(MostrarRegistos,8000)
  48.        
  49. </script>
  50.    
  51.            
  52.  <div id="registro1"></div>
  53.  <div id="registro2"></div>
  54.  <div id="registro3"></div>


despues donde quiero mostrar los resultados que es en otro script, pongo el div con el id resultado y no me funciona me dice que defina cargo, nombre y empresa.
Pero si pongo la consulta sql de forma estatica si que me funciona el codigo javascript.

Alguna ayuda?

Saludos

Última edición por pithon; 10/09/2011 a las 06:36

Etiquetas: php
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 18:24.