Programación Web y Scripting > PHP
Mostrar Ofertas Aleatoriamente Cada X Tiempo
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 ---<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>
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 ---<div id="div_publicidad"><?php include("_PanelIzq.php"); ?></div>
Deberías hacer:
--- Código: Text ---<script>llamar('div_publicidad','_PanelIzq.php','');</script>
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 ---<div id="div_publicidad"></div>
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 ---<div id="div_publicidad"></div>
Luego al final de todo el index.php, coloca el javascript completo:
--- Código: Text ---<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);} //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("act_public()",3000) //se ejecutara act_public() cada 3 segundos</script>
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
[*] Página Anterior
Ir a la versión completa