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

Consulta con php+Ajax funciona mas de una vez

Estas en el tema de Consulta con php+Ajax funciona mas de una vez en el foro de Frameworks JS en Foros del Web. Tengo una consulta con php+Ajax y funciona perfecto una vez, cuando le doy clic para otro link para voy a realizar la consulta no me ...
  #1 (permalink)  
Antiguo 17/03/2010, 08:32
Avatar de mark_ant0n  
Fecha de Ingreso: enero-2009
Ubicación: Comitan, Chiapas mx
Mensajes: 388
Antigüedad: 15 años, 10 meses
Puntos: 6
Consulta con php+Ajax funciona mas de una vez

Tengo una consulta con php+Ajax y funciona perfecto una vez, cuando le doy clic para otro link para voy a realizar la consulta no me funciona, tengo que refrescar el navegador, para volver a reutilizar la funcion.
Este es el link donde llamo a la funcion llamar()
Código PHP:
<?php
echo "<tr><td class='tdline'>".$l['0']."</td><td class='tdline'><a href='javascript:void(0)' onClick='llamar($v,\"mcategoria\",\"$parametro\");' >".$l['1']."</a></td><td class='tdline'>".$l['2']."</td><td class='tdline'><img src='".$l['3']."' width='50' height='50' alt='logos' /></td><td class='tdline'><a href='?mod=aligas&opcion=fligas&id=".$l['0']."'><img src='./imagenes/administrador/editar.png' style='border: none;'/>Modificar</a>|<a href='' onclick='eliminar($v,1)' id='h'><img src='./imagenes/administrador/eliminar.png' style='border: none;'/>Eliminar</a></td></tr>";
?>
Esta es mi funcion en javascript.
Código Javascript:
Ver original
  1. function llamar(datos,div,parametro){  
  2.     divResultado = document.getElementById(div);           
  3.     if(divResultado.innerHTML=='' ){
  4.         ajax = objetoAjax();
  5.         if(datos!=""){
  6.             divResultado.innerHTML = "<span style='color:#ff0000;'>Loading...</span>";     
  7.             ajax.open("GET", parametro+datos,true);
  8.             ajax.onreadystatechange=function() {
  9.                 if (ajax.readyState==4) {
  10.                     divResultado.innerHTML = ajax.responseText
  11.                 }
  12.             }
  13.             ajax.send(null);
  14.         }else divResultado.innerHTML ="";
  15.     }
Les repito mi problema, funciona perfectamente una vez, pero en las siguiente vez que quiero reutilizar la funcion nomas no hace nada, gracias
__________________
"Diseño de software a la medida"

http://www.sadhoc.com
  #2 (permalink)  
Antiguo 17/03/2010, 10:16
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 17 años
Puntos: 5
Respuesta: Consulta con php+Ajax funciona mas de una vez

Inicialmente no veo nada en el code, quizás tu problema esté en el code duro q utilizas, digo en el fichero q estás llamando mediante javascript
  #3 (permalink)  
Antiguo 17/03/2010, 10:19
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 17 años
Puntos: 5
Respuesta: Consulta con php+Ajax funciona mas de una vez

Ahora fijándome mejor, donde está el div "mcategoria"?
  #4 (permalink)  
Antiguo 17/03/2010, 10:29
Avatar de mark_ant0n  
Fecha de Ingreso: enero-2009
Ubicación: Comitan, Chiapas mx
Mensajes: 388
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: Consulta con php+Ajax funciona mas de una vez

Esta es mi funcion completa, todo funciona perfecto una vez, pero a la siguiente clic nada de nada, al final de la funcion se encuentra la division mcategoria, la tengo cmentada por el tamao del escript no se ve amenos que baje el la barrita de navegacio y gracias.
Código PHP:
Ver original
  1. <?php
  2. function ligas(){
  3. global $estilo,$setidioma,$sql,$dbi;
  4. require_once("modulos/mod_idioma/".$setidioma.".php");
  5. include("./modulos/admin/tema/".$estilo."/cuerpo.php");
  6. //Consultas______________________
  7. $ligas=$sql->consulta("SELECT * FROM ligas",$dbi)or die(mysql_error());
  8. $equipos=$sql->consulta("SELECT * FROM equipos",$dbi)or die(mysql_error());
  9. $partidos=$sql->consulta("SELECT * FROM partidos",$dbi)or die(mysql_error());
  10. cabeza("ligas");
  11. divtodo("Ligas");
  12. ?>
  13. <table width="700" >
  14. <tr><td colspan="7" class="h4" style="text-align: center;">Ligas</td></tr>
  15. <tr>
  16. <td class="tdline"><a href="?mod=aligas&opcion=fligas&id=0">Agregar Nueva Liga</a></td>
  17. </tr>
  18. <tr>
  19. <td class='h4'>IdLiga</td><td class='h4'>Nombre</td><td class='h4'>Descripcion</td><td class='h4'>logo</td><td class="h4"colspan="2">Opciones</td>
  20. </tr>
  21. <?php
  22. $parametro="?mod=aligas&opcion=acategoria&id=";
  23. while($l=$sql->consultamatriz($ligas)){
  24. $v=$l['0'];
  25. //echo "<td class='tdline'>".$l['0']."</td><td class='tdline'><a href='?mod=aligas&opcion=acategoria&id=".$l['0']."'>".$l['1']."</a></td><td class='tdline'>".$l['2']."</td><td class='tdline'>logo</td><td class='tdline'><a href='?mod=apage&opcion=modpag&id=".$l['0']."'><img src='./imagenes/administrador/editar.png' style='border: none;'/>Modificar</a>|<a href='' onclick='eliminar($v,1)' id='h'><img src='./imagenes/administrador/eliminar.png' style='border: none;'/>Eliminar</a></td>";
  26. echo "<tr><td class='tdline'>".$l['0']."</td><td class='tdline'><a href='javascript:void(0)' onClick='llamar($v,\"mcategoria\",\"$parametro\");' >".$l['1']."</a></td><td class='tdline'>".$l['2']."</td><td class='tdline'><img src='".$l['3']."' width='50' height='50' alt='logos' /></td><td class='tdline'><a href='?mod=aligas&opcion=fligas&id=".$l['0']."'><img src='./imagenes/administrador/editar.png' style='border: none;'/>Modificar</a>|<a href='' onclick='eliminar($v,1)' id='h'><img src='./imagenes/administrador/eliminar.png' style='border: none;'/>Eliminar</a></td></tr>";
  27. }
  28. ?>
  29.  
  30. <?php
  31. while($e=$sql->consultamatriz($equipos)){
  32. $v1=$e['0'];
  33. }
  34. echo "</table><div id='mcategoria'></div>";   //--------Esta es mi division mcategoria.
  35. cerrar();
  36. }
  37. ?>
__________________
"Diseño de software a la medida"

http://www.sadhoc.com
  #5 (permalink)  
Antiguo 17/03/2010, 10:35
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 16 años, 2 meses
Puntos: 9
Respuesta: Consulta con php+Ajax funciona mas de una vez

hola no ce si seria la respuesta pero cuando mandas los datos y ejecuta bien el codigo, manda una respuesta el ajax al div que tenes, el cual ahora el div contiene algo y como aki( divResultado.innerHTML=='' ) estas prohibiendo ejecutar el codigo cuando tiene algo el div, por eso no se ejecuta(al menos que utilices diferentes div para cada link )

PD: el ejemplo que nos diste de tu ajax le falta un } al final
__________________
Appones.net - www.appones.net

Última edición por danistrein; 17/03/2010 a las 10:42
  #6 (permalink)  
Antiguo 17/03/2010, 10:51
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 17 años
Puntos: 5
Respuesta: Consulta con php+Ajax funciona mas de una vez

Bueno sinceramente no lo he estudiado mucho, debes entender q el medio día es algo complicado hehehehehe.
Prueba que todos los datos lleguen a javascript una vez q recargues. Ponles un alert en la función donde los recibes a ver.
  #7 (permalink)  
Antiguo 17/03/2010, 11:45
Avatar de mark_ant0n  
Fecha de Ingreso: enero-2009
Ubicación: Comitan, Chiapas mx
Mensajes: 388
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: Consulta con php+Ajax funciona mas de una vez

puse el alert y funciona en la primera vez, en la segunda tambien, talvez tiene razon danistrein, un div por cada vez que llame a la funcion en ajax, lo malo es que tendria que crear los nombre de los div de manera dinamica, gracias, por si existe una forma mas facil sin tener que crear un div por cada vez que ejecute la funcion se los agradeceria, gracias por todo
__________________
"Diseño de software a la medida"

http://www.sadhoc.com
  #8 (permalink)  
Antiguo 17/03/2010, 11:54
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 16 años, 2 meses
Puntos: 9
Respuesta: Consulta con php+Ajax funciona mas de una vez

prueba modificando a si tu código ajax:
Código Javascript:
Ver original
  1. function llamar(datos,div,parametro){  
  2. divResultado = document.getElementById(div);            
  3. ajax = objetoAjax();
  4. if(datos!=""){
  5.                 divResultado.innerHTML = "<span style='color:#ff0000;'>Loading...</span>";      
  6.                 ajax.open("GET", parametro+datos,true);
  7.                 ajax.onreadystatechange=function() {
  8.                 if (ajax.readyState==4) {
  9.                                         divResultado.innerHTML = ajax.responseText
  10.                                         }           }
  11.                ajax.send(null);
  12.             }
  13. }

__________________
Appones.net - www.appones.net
  #9 (permalink)  
Antiguo 17/03/2010, 12:52
Avatar de mark_ant0n  
Fecha de Ingreso: enero-2009
Ubicación: Comitan, Chiapas mx
Mensajes: 388
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: Consulta con php+Ajax funciona mas de una vez

gracias danistrein, por molestarte en contestar, pero ni aun asi nome funciona, gracias se te agradece bastante
__________________
"Diseño de software a la medida"

http://www.sadhoc.com
  #10 (permalink)  
Antiguo 17/03/2010, 14:27
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 17 años
Puntos: 5
Respuesta: Consulta con php+Ajax funciona mas de una vez

Entonces habría q ver el code PHP, porq si llegan al javascript..........
  #11 (permalink)  
Antiguo 17/03/2010, 14:47
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 16 años, 2 meses
Puntos: 9
Respuesta: Consulta con php+Ajax funciona mas de una vez

Cita:
Iniciado por eulloa Ver Mensaje
Entonces habría q ver el code PHP, porq si llegan al javascript..........
lo que decis es verdad pero es raro que lo ejecute correctamente la primera vez, si fuera un problema php directamente no lo ejecutaria la primera vez

Cita:
Iniciado por mark_ant0n Ver Mensaje
gracias danistrein, por molestarte en contestar, pero ni aun asi nome funciona, gracias se te agradece bastante
de nada, pero has el ultimo intento y realiza el ajax sin ninguna condicion:
Código Javascript:
Ver original
  1. function llamar(datos,div,parametro){  
  2. divResultado = document.getElementById(div);            
  3. ajax = objetoAjax();
  4. divResultado.innerHTML = "<span style='color:#ff0000;'>Loading...</span>";      
  5. ajax.open("GET", parametro+datos,true);
  6. ajax.onreadystatechange=function() {
  7. if (ajax.readyState==4) {
  8. divResultado.innerHTML = ajax.responseText
  9. }}
  10. ajax.send(null);
  11. }
y si no funciona, fijate el codigo de fuente que imprime el php del link y fijate si estan bien el codigo y ahi te daras cuenta si es el php que tiene el problema.

saludos
__________________
Appones.net - www.appones.net
  #12 (permalink)  
Antiguo 18/03/2010, 08:52
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 17 años
Puntos: 5
Respuesta: Consulta con php+Ajax funciona mas de una vez

Cita:
Iniciado por danistrein Ver Mensaje
lo que decis es verdad pero es raro que lo ejecute correctamente la primera vez, si fuera un problema php directamente no lo ejecutaria la primera vez
Se me ocurren dos o tres absurdos para lograr q el php no funcione la segunda vez
Pero bueno, deteniendome un poco más en el code, es cierto q el problema parece ser la validación del innerHTML del div q tienes. Haz lo q te aconseja danistrein y nos dices
  #13 (permalink)  
Antiguo 18/03/2010, 11:03
Avatar de mark_ant0n  
Fecha de Ingreso: enero-2009
Ubicación: Comitan, Chiapas mx
Mensajes: 388
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: Consulta con php+Ajax funciona mas de una vez

Disculpen por no contestar antes, gracias danistrein y eulloa, se soluciono con la sugerencia de danistrein, ya funciona cuantas veces quiero saludos a todos gran comunidad, jamas se me habia ocurrido hacer eso...
__________________
"Diseño de software a la medida"

http://www.sadhoc.com

Etiquetas: ajax, mas
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 05:56.