Για να οργανώσει διαδραστική επικοινωνία μεταξύ ενός επισκέπτη και ενός ιστότοπου (ή μάλλον ενός προγράμματος περιήγησης με έναν διακομιστή ιστού), ο προγραμματιστής πρέπει να παρέχει σενάρια για την ανταλλαγή δεδομένων μεταξύ τους. Ας εξετάσουμε αρκετές απλές επιλογές για την οργάνωση της μεταφοράς μεταβλητών από το script JavaScrip του πελάτη στο σενάριο PHP του διακομιστή και αντίστροφα.
Είναι απαραίτητο
Βασικές γνώσεις PHP, JavaScript και γλώσσες HTML
Οδηγίες
Βήμα 1
Στο στάδιο της δημιουργίας σελίδων, δεν είναι δύσκολο να μεταφέρετε μια μεταβλητή μαζί με την τιμή της από ένα σενάριο php σε ένα σενάριο JavaScript. Το ίδιο το σενάριο PHP δημιουργεί τον κώδικα HTML της ζητούμενης σελίδας, συμπεριλαμβανομένων των σεναρίων που περιέχει. Αυτό σημαίνει ότι μπορεί να γράψει τυχόν μεταβλητές στον κώδικα JavaScript που πρέπει να περάσει μαζί με τις τιμές τους. Για παράδειγμα, αυτό το σενάριο php θα μεταβιβάσει στο σενάριο πελάτη μια μεταβλητή που ονομάζεται "serverTime" που περιέχει τον τρέχοντα χρόνο διακομιστή με τη μορφή ΩΡΑ: ΛΕΠΤΟ:
<? php
$ JSvarName = 'serverTime';
$ JSvarValue = ημερομηνία ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("Και στον διακομιστή τώρα" + '. $ JSvarName.'); '
?>
Βήμα 2
Ο απλούστερος τρόπος μετάδοσης των ονομάτων και των τιμών των μεταβλητών στην αντίθετη κατεύθυνση (από το σενάριο JS στο πρόγραμμα περιήγησης του πελάτη στο σενάριο PHP στον διακομιστή ιστού) μπορεί να μοιάζει με αυτόν στον κώδικα HTML της σελίδας:
var now = νέα ημερομηνία ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = 'https://sa/test2.php?' + varName + '=' varValue;
Αυτό το σενάριο θα στείλει στο script test2.php το όνομα της μεταβλητής "clientTime" και την τιμή της που περιέχει την τρέχουσα ώρα του υπολογιστή με την ίδια μορφή ΩΡΑ: MINUTE. Αυτή η μέθοδος μεταφοράς δεδομένων ονομάζεται "σύγχρονη" - θα οδηγήσει σε άμεση επαναφόρτωση σελίδας. Πιο συγκεκριμένα, αντί της τρέχουσας σελίδας, το αποτέλεσμα του σεναρίου test2.php θα φορτωθεί στο πρόγραμμα περιήγησης. Ο κώδικας για αυτό το σενάριο php μπορεί να έχει την εξής μορφή:
<? php
εάν ($ _ GET) ηχώ "Λήψη μεταβλητής".key ($ _ GET). "=". $ _ GET [κλειδί ($ _ GET)];
?>
Μπορείτε να συνδυάσετε και τα τρία εξεταζόμενα μέρη του κώδικα για μεταβίβαση μεταβλητών από το διακομιστή στο πρόγραμμα περιήγησης και να επιστρέψετε σε ένα αρχείο php όπως αυτό:
<? php
αν ($ _ GET) ηχώ "Λήψη μεταβλητής".key ($ _ GET). "=". $ _ GET [κλειδί ($ _ GET)];
$ JSvarName = 'serverTime';
$ JSvarValue = ημερομηνία ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("Και στον διακομιστή τώρα" + '. $ JSvarName.'); '
?>
συνάρτηση sendData () {
var now = νέα ημερομηνία ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = "https://sa/test2.php?" + varName + "=" + varValue;
επιστροφή ψευδής?
}
Αποστολή δεδομένων σε διακομιστή Σε αυτό το συνδυασμένο σενάριο (PHP + JavaScript), ο κώδικας php θα δημιουργήσει κώδικα JavaScript "μεταβιβάζοντας" μια μεταβλητή που ονομάζεται "serverTime" με μια τιμή που περιέχει τον τρέχοντα χρόνο διακομιστή. Όταν η σελίδα φορτωθεί στο πρόγραμμα περιήγησης, το σενάριο JavaScript θα εμφανίσει ένα μήνυμα με αυτήν την ώρα. Στη συνέχεια, ο χρήστης κάνει κλικ στο σύνδεσμο "Αποστολή δεδομένων σε διακομιστή" θα ξεκινήσει τη λειτουργία sendData (), η οποία θα στείλει ένα αίτημα GET στον διακομιστή, μεταφέροντας το όνομα της μεταβλητής ("clientTime") και την τιμή του (χρόνος πελάτη) στο php γραφή. Ένα σενάριο php, αφού έχει διαβάσει το όνομα και την τιμή μιας μεταβλητής από τον πίνακα superglobal $ _GET, θα το εκτυπώσει και θα ξεκινήσει ξανά ολόκληρο το περιγραφόμενο σενάριο.
Βήμα 3
Όλα όσα περιγράφονται παραπάνω εφαρμόζουν το σενάριο της «σύγχρονης» μεταφοράς δεδομένων. Η εφαρμογή της "ασύγχρονης" μεθόδου ανταλλαγής δεδομένων μεταξύ σεναρίων πελάτη και διακομιστή έχει το δικό της όνομα AJAX (Asynchronous Javascript και XML). Αυτό το θέμα αξίζει ένα ξεχωριστό άρθρο.