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

No me ejecuta un sript en una pagina cargada con ajax

Estas en el tema de No me ejecuta un sript en una pagina cargada con ajax en el foro de Frameworks JS en Foros del Web. TENGO ESTOS DOS ARCHIVOS Cita: <?php function GetAjax($abretag,$cierratag,$onprogress,$onload) { if ($abretag) echo "<script language = \"javascript\">\n"; echo "var http = false;\n". "if(navigator.appName == \"Microsoft Internet ...
  #1 (permalink)  
Antiguo 21/08/2009, 04:41
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 15 años, 5 meses
Puntos: 0
No me ejecuta un sript en una pagina cargada con ajax

TENGO ESTOS DOS ARCHIVOS

Cita:
<?php

function GetAjax($abretag,$cierratag,$onprogress,$onload)
{
if ($abretag) echo "<script language = \"javascript\">\n";
echo "var http = false;\n".
"if(navigator.appName == \"Microsoft Internet Explorer\") \n".
" { http = new ActiveXObject(\"Microsoft.XMLHTTP\"); } else { http = new XMLHttpRequest(); }\n".
"function GetAjax(url,divid)\n".
"{\n".
" if(http)\n".
" {\n".
" ".$onprogress."\n".
" http.abort();\n".
" http.open(\"GET\", url);\n".
" http.onreadystatechange = function()\n".
" {\n".
" if (http.readyState == 4 )\n".
" {\n".
" var obj = document.getElementById(divid);\n".
" ".$onload."\n".
" if(obj!=undefined) obj.innerHTML = (unescape(http.responseText)).replace(/\+/gi,' ');\n".
" }\n".
" }\n".
" http.send(null);\n".
" }\n".
"}\n";
if ($cierratag)echo "</script>\n";

}




GetAjax(true,true,"","");
?>
<html>
<body topmargin='0' leftmargin='0' >

<?php
echo"<script language='javascript'>";
echo"GetAjax(".chr(34)."2.php".chr(34).",".chr(34) ."resultados".chr(34).");";
echo"var id = setInterval('GetAjax(".chr(34)."2.php".chr(34)."," .chr(34)."resultados".chr(34).");',5000);";
echo"</script>";


echo"<div id='resultados'>";

echo"</div>";
?>
</body>
</html>
Y ESTE ES EL OTRO

Cita:
<script language="javascript" type="text/javascript" src="reloj.js"></script>
<script language="javascript" type="text/javascript">
var Hoy = new Date("<?php echo date("d M Y G:i:s");?>");
</script>
<?php


include("conectarbbdd.php");
echo"<span id='spanreloj' style='font-family:verdana;font-size:13px;color:#000000;font-weight:bold'><b></b></span>";

?>
No ejecuta el codigo utilizando ajax. Nunca ejecute un script asi, si alguien me puede decir como es...
  #2 (permalink)  
Antiguo 21/08/2009, 10:59
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: No me ejecuta un sript en una pagina cargada con ajax

No es necesario usar php en esta situacion, solo contribuye a hacer el codigo mas dificil de leer :P. Coloco parte de tu codigo sin etiquetas php, aqui para explicarte como funciona.

Código 1:
Ver original
  1. <script language = "javascript">
  2.     /*Aqui se crea la instancia XMLHttp de acuerdo al navegador, la cual te permite usar ajax*/
  3.     var http = false;
  4.     if (navigator.appName == "Microsoft Internet Explorer") {
  5.         http = new ActiveXObject("Microsoft.XMLHTTP");
  6.     }
  7.     else {
  8.         http = new XMLHttpRequest();
  9.     }
  10.     function GetAjax(url, divid)
  11.     {
  12.         if (http) {
  13.         /*Se indica el url del archivo de cual se va a obtener informacion y el metodo (GET o POST)*/
  14.         http.open("GET", url, true); /*Aqui te falto colocar el booleano del tercer parametro, true si la llamada es asincrona, o false de lo contrario*/
  15.         /*Cada vez que cambies de estado la solicitud se ejecuta esta funcion*/
  16.         http.onreadystatechange = function()
  17.             {
  18.                 if (http.readyState == 4 ) { //Estado finalizado
  19.                     var obj = document.getElementById(divid);
  20.                     if (obj!=undefined) {
  21.                         /*Cambias la informacion del div acorde a la respuesta de la llamada ajax*/
  22.                         obj.innerHTML = (unescape(http.responseText)).replace(/\+/gi,' ');
  23.                     }
  24.                 }
  25.             }
  26.         }
  27.         /*Parametros a enviar en caso de abrir la url con el metodo POST. Si es distinto de null, seria bueno llamar a http.setRequestHeader.*/
  28.         http.send(null);
  29.     }
  30. </script>
  31. ...

Despues llamas a GetAjax dentro de tu etiquetas <script> o en el cuerpo de un evento. Por ejemplo:
<a href="#" onclick="GetAjax('texto1.html', 'resultados')"/> o <script>GetAjax('texto1.html', 'resultados')</script>
Ah por cierto, seria bueno que coloques las instrucciones para hacer el xmlhttprequest en una funcion y la llames en getAjax.
Tal vez el problema lo hayas tenido por el comentario que puse sobre el booleano que te falto.
En cuanto al segundo script no se cual es el problema con el. No veo ninguna llamada 'ajax'.
Bueno espero que te haya ayudado =D
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 06:25.