
¿Cómo extraer/mostrar HTML con Ajax? (Por ejemplo la etiqueta <script>)
Publicado por Vega (1 intervención) el 14/04/2014 19:00:15
Hola a todos amigos, lo sé, suena algo tonto extraer javascript con ajax si ambos son java, pero realmente yo no se mucho de javascript, apenas he estoy en mis comienzos y gracias a éste foro poco a poco voy comprendiendo más :)
Pues verán, he hecho un pequeño script en php para enviar alertas java temporales a los usuarios en linea de un sitio web. En una base de datos del mismo sitio, metí una tabla para que almacene el código la alerta por digamos 60 segundos (es decir que almacene por ejemplo <script>alert("Volvemos a la radio en breve");</script>) todo eso ya lo tengo hecho, y ésto se muestra en un archivo .php que en su contenido sólo mostrará el <script> de la alerta.
Para hacer que la alerta le llegue a los visitantes que están en línea pensaba en simplemente hacer un <iframe> a ese .php que se recargue cada 58 segundos (ya que a los 60 segundos se eliminará la alerta automáticamente de la base de datos) y así todos la podrán leer, y si es que acaso unos cuantos les sale dos veces (por los 2 segundos de margen).
Pero leí que Ajax puede ayudarme con esto, para que la web no esté recargando el iframe cada X tiempo y haga quizás que se alente un poco el navegador.
Encontré éste código con un ejemplo simple para mostrar la hora:
En un archivo time.php colocamos esto:
Y el archivo donde queremos mostrar la hora colocamos ésto:
Y funciona de maravilla, pero, quisiera saber ¿cómo puedo hacer para que en vez de Texto lea HTML y lo muestre? Ya probé cambiando dataType: 'text' por dataType: 'html' e incluso .responseText por .responseHTML (aunque éste no creo que tenga que ver en algo jeje).
Espero que alguien pueda guiarme con un ejemplo, y muchas gracias de antemano, saludos a todos.
Pues verán, he hecho un pequeño script en php para enviar alertas java temporales a los usuarios en linea de un sitio web. En una base de datos del mismo sitio, metí una tabla para que almacene el código la alerta por digamos 60 segundos (es decir que almacene por ejemplo <script>alert("Volvemos a la radio en breve");</script>) todo eso ya lo tengo hecho, y ésto se muestra en un archivo .php que en su contenido sólo mostrará el <script> de la alerta.
Para hacer que la alerta le llegue a los visitantes que están en línea pensaba en simplemente hacer un <iframe> a ese .php que se recargue cada 58 segundos (ya que a los 60 segundos se eliminará la alerta automáticamente de la base de datos) y así todos la podrán leer, y si es que acaso unos cuantos les sale dos veces (por los 2 segundos de margen).
Pero leí que Ajax puede ayudarme con esto, para que la web no esté recargando el iframe cada X tiempo y haga quizás que se alente un poco el navegador.
Encontré éste código con un ejemplo simple para mostrar la hora:
En un archivo time.php colocamos esto:
1
<?php echo date("d-m-Y H:i:s"); ?>
Y el archivo donde queremos mostrar la hora colocamos ésto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
function getTimeAJAX() {
//GUARDAMOS EN UNA VARIABLE EL RESULTADO DE LA CONSULTA AJAX
var time = $.ajax({
url: 'time.php', //indicamos la ruta donde se genera la hora
dataType: 'text',//indicamos que es de tipo texto plano
async: false //ponemos el parámetro asyn a falso
}).responseText;
//actualizamos el div que nos mostrará la hora actual
document.getElementById("myWatch").innerHTML = "La fecha que hemos obtenido de time.php vía AJAX es: "+time;
}
//con esta funcion llamamos a la función getTimeAJAX cada segundo para actualizar el div que mostrará la hora
setInterval(getTimeAJAX,1000);
</script>
<html>
<body>
<div id='myWatch'></div>
</body>
</html>
Y funciona de maravilla, pero, quisiera saber ¿cómo puedo hacer para que en vez de Texto lea HTML y lo muestre? Ya probé cambiando dataType: 'text' por dataType: 'html' e incluso .responseText por .responseHTML (aunque éste no creo que tenga que ver en algo jeje).
Espero que alguien pueda guiarme con un ejemplo, y muchas gracias de antemano, saludos a todos.
Valora esta pregunta


0