Programación Web y Scripting > PHP

 Mostrar Ofertas Aleatoriamente Cada X Tiempo

<< < (2/2)

JrcsDev:
El código javascript debe ir en el INDEX.PHP o en otro caso, debes colocarlo en un archivo js externo.

ajax.js

--- Código: Text ---&#60;script language=&#34;javascript&#34;&#62;function nuevoAjax(){var xmlhttp=false;try {xmlhttp = new ActiveXObject(&#34;Msxml2.XMLHTTP&#34;);} catch (e) {try {xmlhttp = new ActiveXObject(&#34;Microsoft.XMLHTTP&#34;);} catch (E) {xmlhttp = false;}} if (!xmlhttp && typeof XMLHttpRequest!='undefined') {xmlhttp = new XMLHttpRequest();}return xmlhttp;}function llamar(id,pagina,datos){contenedor = document.getElementById(id);ajax=nuevoAjax();ajax.open(&#34;POST&#34;, pagina,true);ajax.onreadystatechange=function() {if (ajax.readyState==4) {contenedor.innerHTML = ajax.responseText}}ajax.setRequestHeader(&#34;Content-Type&#34;, &#34;application/x-www-form-urlencoded&#34;);ajax.send(datos);}&#60;/script&#62; 
y luego lo incluyes con un <script src="ajax.js"></script>.

El archivo _PanelIzq.php solo debe tener el código php que va a hacer la consulta a mysql.

En vez de hacer en el index:

--- Código: Text ---&#60;div id=&#34;div_publicidad&#34;&#62;&#60;?php include(&#34;_PanelIzq.php&#34;); ?&#62;&#60;/div&#62; 
Deberías hacer:

--- Código: Text ---&#60;script&#62;llamar('div_publicidad','_PanelIzq.php','');&#60;/script&#62;  
Así consigues que se actualice la publicidad tan pronto cargue la página, y el resto del tiempo lo hará SERINTERVAL().

Obviamente deberás crear el div para la actualización...

--- Código: Text ---&#60;div id=&#34;div_publicidad&#34;&#62;&#60;/div&#62; 
creo que así deberia funcionarte... Avísame como te va!

saiory:
En el index.php lo tengo de esta manera:

<script language="javascript">
function nuevoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function llamar(id,pagina,datos){
contenedor = document.getElementById(id);
ajax=nuevoAjax();
ajax.open("POST", pagina,true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
contenedor.innerHTML = ajax.responseText
}
}
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send(datos);
}
</script>


<script language="javascript">
setinterval("act_public()",3000) //se ejecutara act_public() cada 3 segundos
function act_public()
{  
 llamar('div_publicidad','_PanelIzq.php','')
}
</script>

Y en la zona donde tengo las ofertas en el mismo index.php, me comentas que en vez de

<?php include("_PanelIzq.php"); ?>

ponga

<script>
            llamar('div_publicidad','_PanelIzq.php','');
</script>


pero de esta manera, no lo puedo hacer porque no me muestra las ofertas puesto que en el archivo _PanelIzq.php tengo como un módulo donde tengo programado en php cómo quiero que me muestre las ofertas y a mi entender necesito el include para que se pueda ver.

Si lo pongo como me dices tú, no me las muestra y además me sale un error de javascript.

No lo veo claro, me podrías ayudar.

Gracias

JrcsDev:
ok, vamos a darle por orden... en el index.php, ubica en el lugar donde va tu publicidad el siguiente código:


--- Código: Text ---&#60;div id=&#34;div_publicidad&#34;&#62;&#60;/div&#62; 
Luego al final de todo el index.php, coloca el javascript completo:


--- Código: Text ---&#60;script language=&#34;javascript&#34;&#62;function nuevoAjax(){var xmlhttp=false;try {xmlhttp = new ActiveXObject(&#34;Msxml2.XMLHTTP&#34;);} catch (e) {try {xmlhttp = new ActiveXObject(&#34;Microsoft.XMLHTTP&#34;);} catch (E) {xmlhttp = false;}} if (!xmlhttp && typeof XMLHttpRequest!='undefined') {xmlhttp = new XMLHttpRequest();}return xmlhttp;}function llamar(id,pagina,datos){contenedor = document.getElementById(id);ajax=nuevoAjax();ajax.open(&#34;POST&#34;, pagina,true);ajax.onreadystatechange=function() {if (ajax.readyState==4) {contenedor.innerHTML = ajax.responseText}}ajax.setRequestHeader(&#34;Content-Type&#34;, &#34;application/x-www-form-urlencoded&#34;);ajax.send(datos);} //function act_public()     //Esta funcion es para la actualizacion{     llamar('div_publicidad','_PanelIzq.php','')} llamar('div_publicidad','_PanelIzq.php',''); //esto se ejecuta al abrir la pagina setInterval(&#34;act_public()&#34;,3000) //se ejecutara act_public() cada 3 segundos&#60;/script&#62;  
NOTA: la función setInterval() debe llevar la I en mayúscula, disculpa que no me habia dado cuenta y la puse toda en minúscula.... de todas maners aquí te adjunto un archivo sencillo de entender que hace mas o menos lo que tu quieres, solo que este coloca numeros aleatorios en vez de publicidad.

en el archivo de publicidad _PanelIzq.php tienes que colocar el código que extraiga la publicidad al azar... espero haberme explicado mejor esta vez jeje  :P ... cualquier cosa me avisas...

saiory:
He conseguido hacerlo pero me he dado cuenta que estoy utilizando sesiones globales y con este tipo de refresco no me funcionan, las pierdo. Tienes idea de porque pasa esto?

Gracias por tu ayuda.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa