Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tiedon pollaus tietokannasta (MySQL)

ViKiNGi [13.11.2012 19:12:04]

#

Moikka,

Avaampa uudelleen kysymyksen tietokantatiedon pollauksesta PHP:llä ja Jqueryllä. Tietokantana MySQL.

En ole vieläkään päässyt oikein jyvälle tuosta JQuerystä ja sen sielunelämästä.

tarpeena olisi:

1 ladata sivun aukaisussa tietokannasta rivitietoa (aihe, lyhytkuvaus), 20 viimeisintä riviä.

2 10 sekunnin kuluttua pitäisi jqueryllä katsoa, onko uutta tietoa kannassa. Jos löytyy niin lisätään listan perään uusimmat niin, että ei ladatakaan koko sivua uudelleen.

Pystyiskös joku oikein koodin kansssa opastamaan tässä.

Tietenkin sen verran fiksu versio, että ei saada kaikkea jumiin kerralla.

Käyttäjäkunta tulee olemaan suht pieni kuitenkin sovelluksessa.


Ja jos jotain jäisi käteen, niin voin oppiakin tästä jotain :D


Kiitos!

samip [13.11.2012 19:37:58]

#

$.ajax({
  type: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
}).done(function( msg ) {
  alert( "Data Saved: " + msg );
});

msg = kaikki mitä some.php tulostaa
Esimerkissä annetaan php-skriptalle POST-parametrit name ja location

Lisätietoa

tsuriga [13.11.2012 21:59:05]

#

Ja kun tarpeena oli hakea jotain niin

$.get('/messages/',
    { time: lastTimeStamp },
    function (messages) {
        $(messages).each(function (i, message) {
            $('#myList').append($('<li>' + message + '</li>'));
        });
    });
);

Kannattaa suosia noita $.get ja $.post shorthandeja $.ajaxin sijaan.

Esimerkissä /messages/ osottaa johonki kivaan tiedostoon, vaikka se messages.php, joka puuppaa JSONina a) limit- ja sort-parametrien kanssa tietyn joukon sortattuna uusin ensin (limit=20&sort=DESC, näin saat ne 20 uusinta), ja b) time-parametrin kanssa ko. timestampin jälkeen tulleet rivit.

<?php
// karkeasti yksinkertaistettuna
// Putkan PHP- ja MySQL- & PDO-oppaat auttavat tietokannan kanssa puljaamisessa

// GETillä haetaan...
if ($requestType === 'GET') {
    $messages = getMessages($limit, $sort, $timestamp);
    echo json_encode(messages);
}
// ja POSTilla voidaan sitten päivittää
else if ($requestType === 'POST') {
    saveMessage($message);
}

?>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta