Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  8 845
Hei.

Jeg ønsker å lage en side som laster automastisk et php/mysql søk ved oppstart og deretter oppdaterer dette automatisk hvert 20. sekund.

Noen som har et kode eksempel eller kan peke med i riktig rettning?

Jeg vil ikke refresh'e hele siden
jQuery er vel det du leter etter. Google it.
javaScript setTimeout() og window.location er noen hint du kan søke på.

Skal du kun refreshe deler av siden bruker du innerHtml.

Kaizen
Sist endret av Kaizen; 22. februar 2011 kl. 15:51.
Tilfeldig kode jeg hadde liggende som gjør omtrent det du ber om (viser nye bilder i en database hvert halve sekund.)

Kode

<?php
session_start();
$_SESSION = array();
?>
<!DOCTYPE HTML>
<html>
    <head>
        <title>Herp de derp</title>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
        <script type="text/javascript" src="/js/jquery.js"></script>
        <script type="text/javascript">
            setInterval('update()', 500);
            function update() {
                $.ajax({
                    dataType: 'json',
                    url: './ajax.php',
                    success: function (data) {
                        var $v = $("#viewer");
                        for (i = 0; i < data.length; i++) {
                            x = data[i].replace(/\/derp/, "");
                            $('<img alt="img" src=".' + x +'" />').prependTo($v);
                        }
                        while ($v.children().length > 30) {
                            $v.children().last().remove();
                        }
                    }
                });
            }
        </script>
        <style type="text/css">
            img {
                display: block;
                float: left;
                clear: both;
            }
        </style>
    </head>
    <body>
        <h1>Derp de herp</h1>
        <div id="viewer"></div>
    </body>
</html>
ajax.php:

Kode

<?php
session_start();
$lastid = $_SESSION['lastid'] ?: 0;

$pg = pg_connect("s33crit inf0z");
$res = pg_query($pg, "SELECT imagePath, imageId FROM images ORDER BY imageId DESC LIMIT 30");
$a = array();
$row = pg_fetch_array($res);
if ($row['imageid'] == $lastid) {
    die(json_encode(array()));
}
$a[] = $row['imagepath'];
$newid = $row['imageid'];
while ($row = pg_fetch_array($res)) {
    if ($row['imageid'] <= $lastid) {
        break;
    }
    $a[] = $row['imagepath'];
}
$_SESSION['lastid'] = $newid;
echo json_encode($a);
?>
Alt du trenger er

<script type="text/javascript">
setInterval('update()', 20000);
function update() {window.location="http://www.side.com" ;}
</script>

Legg dette inn i html koden og bytt ut linken.

Kaizen
Sist endret av Kaizen; 22. februar 2011 kl. 18:23.
nso
popålol
nso's Avatar
Administrator

HTML-kode

<meta http-equiv="refresh" content="20;url=http://example.com/">
Hvorfor gjøre det så vanskelig, html klarer fint denne oppgaven, slik som nso viser her:

Sitat av nso Vis innlegg

HTML-kode

<meta http-equiv="refresh" content="20;url=http://example.com/">
Vis hele sitatet...
Trådstarter
2 0
Takk for alle tips. Fant til slutt svaret:

Kode

<script>
     $(document).ready(function() {
         $("#news").load("news.php");
       var refreshId = setInterval(function() {
          $("#news").load('news.php');
       }, 20000);
    });
    </script>
Gjorde jobben.

Mitt neste problem er at jeg vil at det skal kjøres mellom 07:00 og 17:00 for å ikke belaste serveren unødvendig.
Noen som har tips der?

Og problemet med <meta http-equiv="refresh" content="20;url=http://example.com/"> er hvis internett forbindelsen er nede i det siden skal kjøres, så for jeg Error 404: File Not Found og da slutter den å oppdatere seg.
Denne siden blir brukt på en infoskjerm og står på 24/7.
Sist endret av Butch; 24. februar 2011 kl. 00:39.
Går det ikke an å bruke en cronjob av en slags til dette?