Latests Posts PhP and AJAX

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Latests Posts PhP and AJAX

Δημοσίευση από Basilakis » 31 Ιαν 2009 20:59

Αυτό που θα κάνουμε είναι να χρησιμοποιήσουμε ένα απλό XMLHttpRequest για την διαδικασία μας. Επειδή λοιπόν πολύ δεν ίσως δεν γνωρίζετε τι είναι αυτό το XMLHttpRequest ας κάνουμε πρώτα μία αναφορά για αυτό.

Με το XMLHttpRequest μπορούμε να έχουμε live data στην σελίδα μας. Μπορούμε δηλαδή να δείξουμε στους επισκέπτες μας κάτι ζωντανά χωρίς να χρειαστεί να κάνουνε αυτοί refresh. ‘Ένα τέτοιο παράδειγμα είναι στις σελίδες στοιχημάτων αγώνων. Εκεί καθώς βλέπετε την σελίδα γίνετε ένα αυτόματο refresh και το score σε κάποιον αγώνα αλλάζει χωρίς να ξαναφορτώσετε μόνοι σας την σελίδα. Ένα παράδειγμα κώδικα για ένα απλό XMLHttpRequest

Κώδικας: Επιλογή όλων

function createRequestObject() {

var req;

if(window.XMLHttpRequest){
// Firefox, Safari, Opera...
req = new XMLHttpRequest();
} else if(window.ActiveXObject) {
// Internet Explorer 5+
req = new ActiveXObject("Microsoft.XMLHTTP");
} else {
// There is an error creating the object,
// just as an old browser is being used.
alert('Problem creating the XMLHttpRequest object');
}

return req;

}

// Make the XMLHttpRequest object
var http = createRequestObject();

function sendRequest(act) {

// Open PHP script for requests
http.open('get', 'myphpscript.php?act='+act);
http.onreadystatechange = handleResponse;
http.send(null);

}

function handleResponse() {

if(http.readyState == 4 && http.status == 200){

// Text returned FROM the PHP script
var response = http.responseText;

if(response) {
// UPDATE ajaxTest content
document.getElementById("ajaxTest").innerHTML = response;
}

}

}
Αυτό είναι λοιπόν το XMLHttpRequest. Απλό, εύκολο και πολύ χρήσιμο. Ας προχωρήσουμε τώρα όμως στο script μας. Θα φτιάξουμε ένα script που θα ενημερώνει τα latest posts μέσα στο forum μας.

Πρώτα φτιάχνουμε το request μας.


Κώδικας: Επιλογή όλων

function createRequestObject() {

var req;

if(window.XMLHttpRequest){
// Firefox, Safari, Opera...
req = new XMLHttpRequest();
} else if(window.ActiveXObject) {
// Internet Explorer 5+
req = new ActiveXObject("Microsoft.XMLHTTP");
} else {
// There is an error creating the object,
// just as an old browser is being used.
alert('There was a problem creating the XMLHttpRequest object');
}

return req;

}

// Make the XMLHttpRequest object
var http = createRequestObject();
Μετά πρέπει να φτιάξουμε την sendRequest η οποία στέλνει τα αποτελέσματα στον χρήστη.


Κώδικας: Επιλογή όλων

function sendRequest(act) {

// Open PHP script for requests
http.open('get', 'ajax.php?act='+act);
http.onreadystatechange = handleResponse;
http.send(null);

}

function handleResponse() {

if(http.readyState == 4 && http.status == 200){

// Text returned FROM PHP script
var response = http.responseText;

if(response) {
// UPDATE ajaxTest content
document.getElementById("countPosts").innerHTML = response;
setTimeout(countPosts,20);
}

}
}
Tώρα θα φτιάξουμε την php page η οποία καλείτε στο συγκεκριμένο μας παράδειγμα ως ajax.php


Κώδικας: Επιλογή όλων

<?php
mysql_connect&#40;"localhost", "user", "password"&#41;;
mysql_select_db&#40;"name"&#41;;

if &#40;$_GET&#91;'act'&#93; == "countPosts"&#41; &#123;

$sql = mysql_query&#40;"SELECT * FROM phpbb_posts_text ORDER BY post_id DESC LIMIT 5"&#41;;
while&#40;$count = mysql_fetch_assoc&#40;$sql&#41;&#41; &#123;

echo "".$count&#91;'post_id'&#93;." - ".$count&#91;'post_text'&#93;."

";

&#125;

&#125;
?>
και μέσα στον κώδικα πρέπει να προσθέσουμε μία function η οποία θα καλεί το sendRequest.

Κώδικας: Επιλογή όλων

function countPosts&#40;&#41; &#123;
sendRequest&#40;'countPosts'&#41;;
&#125;
Από ότι βλέπετε είναι ένα πολύ εύκολο Tutorial. Μπορείτε να το αλάξετε και να το κάνετε για το Blog σας τον news editor σας ή για ότι άλο θέλετε.

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Latests Posts PhP and AJAX

Δημοσίευση από vassilism » 02 Φεβ 2009 18:06

Να ρωτήσω κάτι?
Η παρακάτω συνάρτηση τι ακριβώς κάνει?
Στο κομμάτι που λέει:

Κώδικας: Επιλογή όλων

http.open&#40;'get', 'myphpscript.php?act='+act&#41;;
Πρέπει να δηλώνουμε το php αρχείο που θέλουμε να ψάχνει για αλλαγές?

Κώδικας: Επιλογή όλων

function sendRequest&#40;act&#41; &#123; 

// Open PHP script for requests 
http.open&#40;'get', 'myphpscript.php?act='+act&#41;; 
http.onreadystatechange = handleResponse; 
http.send&#40;null&#41;; 

&#125; 

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Latests Posts PhP and AJAX

Δημοσίευση από fafos » 02 Φεβ 2009 18:13

vassilism έγραψε:Να ρωτήσω κάτι?
Η παρακάτω συνάρτηση τι ακριβώς κάνει?
Στο κομμάτι που λέει:

Κώδικας: Επιλογή όλων

http.open&#40;'get', 'myphpscript.php?act='+act&#41;;
Πρέπει να δηλώνουμε το php αρχείο που θέλουμε να ψάχνει για αλλαγές?

Κώδικας: Επιλογή όλων

function sendRequest&#40;act&#41; &#123; 

// Open PHP script for requests 
http.open&#40;'get', 'myphpscript.php?act='+act&#41;; 
http.onreadystatechange = handleResponse; 
http.send&#40;null&#41;; 

&#125; 
auto dhlonei na anoiksei sto background (na mhn einai orato dhladh ston xrhsth) thn selida myphpscript.php xrhsimopoiontas thn methodo GET..


an den dhloseis to arxeio php re patrida pos tha parei ta dedomena?
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Latests Posts PhP and AJAX

Δημοσίευση από vassilism » 02 Φεβ 2009 18:43

Ε τότε καλά το κατάλαβα :D
Άν δεν κάνω λάθος κάτι παρόμοιο χρησιμοποιείτε και στο facebook που βλέπεις τους online friends.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Latests Posts PhP and AJAX

Δημοσίευση από fafos » 02 Φεβ 2009 18:50

vassilism έγραψε:Ε τότε καλά το κατάλαβα :D
Άν δεν κάνω λάθος κάτι παρόμοιο χρησιμοποιείτε και στο facebook που βλέπεις τους online friends.
yep... alla ego eimai enantion tetoion routinon giati tous aplous server me ligh ypologistikh dynamh tous kanei tourloumpouki idiaitera otan trexoun kai sozoun sessions opos to facebook... to facebook vevea den exei anagkh alla websites pou vriskontai se shared hosting gonatizoun kai auta kai o server... gia paradeigma h efarmogh phpfox.. trexei synexeia mia ajax routina pou leei an exeis nea mhnymata.. exoun ginei parapona oti mono auth h routina termatizei tis CPU me 10-20 users online!!
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Latests Posts PhP and AJAX

Δημοσίευση από vassilism » 02 Φεβ 2009 19:38

Πατρίδα αυτό που λές το φαντάστικα πριν.
Στην ουσία κάνει συνεχώς ανανέωση.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Latests Posts PhP and AJAX

Δημοσίευση από fafos » 02 Φεβ 2009 19:41

vassilism έγραψε:Πατρίδα αυτό που λές το φαντάστικα πριν.
Στην ουσία κάνει συνεχώς ανανέωση.
auto pou dinei edo o Basilakis den einai kati sovaro apo apopsh katanaloshs poron tou server, arkei na mhn to valeis se oles stis selides enos site.. an einai aplos sthn index den tha epivarynei shmantika to server...
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης