Πάρτε μια μεταβλητή από το PHP στο JavaScript. Πώς να χρησιμοποιήσετε μεταβλητές PHP στο JavaScript

Πολλοί προγραμματιστές ιστοσελίδων Novice ενδιαφέρονται για το πώς να μεταφέρουν τη μεταβλητή από το JavaScript του PHP; Και ακόμη περισσότεροι προγραμματιστές δεν μπορούν να καταλάβουν γιατί είναι γενικά απαραίτητο. Η απάντηση στο δεύτερο ερώτημα όλοι θα βρουν για τον εαυτό του, και τώρα εξηγώ πώς λειτουργεί.

Δεδομένου ότι η Javascript εκτελείται στην πλευρά του χρήστη και PHP στην πλευρά του διακομιστή, η τιμή δεν μπορεί να μεταδοθεί απευθείας. Επομένως, το αποτέλεσμα της εκτέλεσης Κωδικός JavaScript Θα δώσουμε σε php μέσω Πρωτόκολλο HTTP. Θα δούμε με διάφορους τρόπους και όλοι θα αποφασίσουν τι είδους τρόπο να το χρησιμοποιήσουν.

Μόδα πρώτα

Πρέπει να φιλοξενήσετε τη σελίδα κώδικα JavaScript ή να την δημιουργήσετε στην πλευρά του διακομιστή, όπως περιγράφεται στο εγχειρίδιο PHP και μεταφέρετε στο πρόγραμμα περιήγησης του χρήστη. Σε αυτό το παράδειγμα, θα ορίσουμε το πλάτος και το ύψος της οθόνης χρήστη:

// Ελέγξτε την ύπαρξη $ πλάτος και $ ύψος μεταβλητές // Εάν υπάρχουν οι μεταβλητές, εμφανίζουμε τις ληφθείσες τιμές στην οθόνη ECHO "Πλάτος οθόνης:". $ _Get ["πλάτος"]. "
\\ n "; echo" Ύψος οθόνης: "$ _get [" Ύψος "]."
\\ n ") // Εάν οι μεταβλητές δεν υπάρχουν, τότε πραγματοποιούμε τα ακόλουθα Αλλιώς ( // PHP θα δημιουργήσει τον κωδικό JavaScript, το οποίο θα χειριστεί το πρόγραμμα περιήγησης // χρήστη και θα μεταδώσει την τιμή του σεναρίου PHP μέσω του πρωτοκόλλου HTTP Ηχώ. "\\ n ";\u003e

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

http: // pow_k_script ___ script.php? Width \u003d 1024 & Ύψος \u003d 768

Σημάδι? Αφού το όνομα δέσμης ενεργειών δείχνει το διακομιστή Web που θέλουμε να κάνουμε ένα αίτημα για το σενάριο PHP, αφού είναι το όνομα της μεταβλητής μας και ένα σημάδι ισότητας, το οποίο εκχωρεί τη μεταβλητή την τιμή που ορίζεται από τη λειτουργία JavaScript. Το Sign & χρησιμεύει ως διαχωριστής για μεταβλητές στο ερώτημα. Ως αποτέλεσμα, δύο μεταβλητές θα μεταφερθούν σε πλάτος PHP: $ με πλάτος ίσης οθόνης (1024) και ύψος $ με ύψος ίσου οθόνης (768).

Και στην οθόνη θα δούμε το αποτέλεσμα του σεναρίου. Για παράδειγμα:


Το αποτέλεσμα που προέκυψε: το πλάτος και το ύψος της οθόνης χρήστη

Μέθοδος του δεύτερου

Γράφουμε τον κωδικό JavaScript και την εκτελούμε στην πλευρά του χρήστη και στη συνέχεια μεταδίδουμε το αποτέλεσμα μέσω πρωτοκόλλου HTTP στο PHP:


Εδώ έχουμε αναθέσει ένα αίτημα μεταβλητής ερωτήματος με το πλάτος και το ύψος της οθόνης χρήστη, όπως στο προηγούμενο παράδειγμα. Ως αποτέλεσμα της εκτέλεσης αυτού του κώδικα, η μεταβλητή ερωτήματος θα εκχωρηθεί μια σειρά πλάτης \u003d 1024 & Ύψος \u003d 768 (κατά την επίλυση της οθόνης 1024x768).

Τώρα πρέπει να μεταφέρουμε τη μεταβλητή ερώτησης από το JavaScript σε PHP. Για να μεταφέρετε το αίτημα στο σενάριο PHP που ονομάζεται Script.php. Για να το κάνετε αυτό, θα χρησιμοποιήσουμε την ετικέτα HTML που εισάγει εικόνες σε μια σελίδα HTML. Αντί των εικόνων, θα καθορίσουμε το όνομα του σεναρίου PHP και να συνδέσουμε τη μεταβλητή ερώτησης σε αυτό με το ερώτημα:


Με αυτόν τον τρόπο, μπορείτε να μεταφέρετε αιτήματα σε οποιοδήποτε σενάριο. Το αποτέλεσμα της εκτέλεσης αυτών των δύο μπλοκ κώδικα javascript ένα πρόγραμμα περιήγησης χρήστη θα μετατραπεί στον ακόλουθο κώδικα HTML:


Το πρόγραμμα περιήγησης θα γυρίσει στην εικόνα για την εικόνα συγκεκριμένη διεύθυνση Και ως αποτέλεσμα, κάντε ένα αίτημα στο script.php με τις παραμέτρους που χρειάζεστε. Τώρα μπορούμε να επεξεργαστούμε τις ληφθείσες μεταβλητές στο script.php μας:

// Ελέγξτε την παρουσία μεταβλητών $ πλάτος και $ Ύψος Εάν (το ISPET ($ _ Πάρτε ["πλάτος"]) και ISSET ($ _ Πάρτε ["Ύψος"])) ( // Εδώ γράφουμε τον κώδικα που θα εκτελεστεί εάν υπάρχουν οι μεταβλητές // $ πλάτος και $ ύψος. , Για παράδειγμα, μπορούν να γραφτούν στο // αρχείο κειμένου ή να προσθέσουν στη βάση δεδομένων ) Αλλού ( // Εδώ γράφουμε τον κώδικα που θα εκτελεστεί εάν οι μεταβλητές δεν είναι // υπάρχουν ή δεν μπορούν να χρησιμοποιήσουν άλλο () } ?>

Μέθοδος τρίτο

Τα δεδομένα θα μεταφερθούν στο σενάριο PHP μετά την πίεση του χρήστη για αναφορά:


ή στο κουμπί στη φόρμα:


Εάν χρησιμοποιείται η φόρμα, κάθε μεταβλητή πρέπει να μεταδίδεται σε ένα ξεχωριστό πεδίο. Χρησιμοποιήσαμε τα κρυμμένα πεδία της φόρμας, τα ονόματα των οποίων αντιστοιχούν στα ονόματα των μεταβλητών στο σενάριο PHP. Ή δεν μπορείτε να χρησιμοποιήσετε καθόλου τα πεδία κειμένου, αλλά να μεταφέρετε όλα τα δεδομένα μέσω της δράσης παραμέτρου \u003d "" της μορφής μας:

συμπέρασμα

Η πρώτη μέθοδος δεν είναι πολύ βολική, αφού το πρόγραμμα περιήγησης μετά την επεξεργασία του κωδικού JavaScript πρέπει να ενημερώσετε τη σελίδα, περνώντας το σενάριο PHP τα ληφθέντα δεδομένα. Όταν χρησιμοποιείτε τη δεύτερη μέθοδο, η μετάδοση δεδομένων από το JavaScript σε PHP περνά απαρατήρητα για τον χρήστη χωρίς να ενημερώνει τα περιεχόμενα της σελίδας. Η τρίτη μέθοδος δίνει το ίδιο αποτέλεσμα με τα δύο πρώτα, αλλά απαιτεί πατώντας ένα κουμπί σύνδεσης ή χρήστη. Ποιος είναι ο καλύτερος τρόπος να χρησιμοποιήσετε; Όλα εξαρτώνται από το σύνολο εργασιών.

Οποιαδήποτε από αυτές τις μεθόδους μπορεί να χρησιμοποιηθεί για τη μετάδοση τιμής από το JavaScript όχι μόνο στο PHP, αλλά και στο Perl, ASP ή σε οποιαδήποτε άλλη γλώσσα προγραμματισμού που εκτελείται στην πλευρά του διακομιστή Web.

Το άρθρο αντιγραφής απαγορεύεται.

Σε ορισμένες περιπτώσεις, μπορεί να χρειαστεί να μεταφερθεί PHP Παγκόσμιες μεταβλητές Στο σενάριο JavaScript. Σε αυτό το άρθρο θα σας πω πώς να χρησιμοποιήσετε μεταβλητές PHP στο JavaScript και να δώσετε μερικά παραδείγματα.

Μεταβλητές PHP στο JavaScript

Υπάρχουν πολλά σενάρια για τα οποία ίσως χρειαστεί να ενεργοποιήσετε τις μεταβλητές PHP σε κωδικό JavaScript. Για παράδειγμα, όταν ζητηθεί η σελίδα του ιστότοπου από τον χρήστη, η μονάδα PHP στο διακομιστή δημιουργεί μια σελίδα πραγματοποιώντας υπολογισμούς και εμφανίζοντας όλες τις μεταβλητές σελίδας στο παράθυρο του προγράμματος περιήγησης.

Αφού ολοκληρωθεί το φορτίο σελίδας, δεν το ελέγχετε πλέον ( Εκτός από την περίπτωση όταν έχετε έναν διακομιστή βασισμένο σε προσωρινές λειτουργίες). Αλλά αν κατά τη διάρκεια της λήψης σελίδας, μεταφέρετε μεταβλητές PHP σε κώδικα JavaScript, μπορείτε να συνεχίσετε να τα χρησιμοποιείτε μέσα σε σενάρια JS και διαχειριστείτε την εμφάνιση σελίδας και τη δυναμική συμπεριφορά του.

Τώρα εξετάστε πώς μπορείτε Μεταφορές μεταβλητές από το Javascript στο PHP ή αντιστρόφως.

Πώς να μεταφέρετε τις μεταβλητές PHP στο ενσωματωμένο JavaScript

Υπάρχουν δύο κύριες μεθόδους για την ενεργοποίηση του κωδικού JavaScript στη σελίδα HTML. Πρώτα - έχουμε έναν κώδικα στην ίδια σελίδα, στην ενότητα ή σε . Ας υποθέσουμε ότι έχουμε έναν ενσωματωμένο κώδικα JS στο τμήμα Και θέλουμε να μεταφέρουμε τη μεταβλητή όνομα χρήστη PHP στο JavaScript. Σε αυτή την περίπτωση, πρέπει να χρησιμοποιήσουμε τον ακόλουθο κώδικα:

...

Ορίσαμε μια νέα μεταβλητή σε JS και το κάλεσε το όνομα χρήστη. Στη συνέχεια, απονεμήθηκε η μεταβλητή $ Username με αυτή τη μεταβλητή JS PHP, επαναλαμβάνοντας την. Φυσικά, η μεταβλητή για το όνομα χρήστη $ πρέπει να ορίζεται νωρίτερα στη σελίδα πάνω από αυτή τη συμβολοσειρά.

Παρακαλείστε να σημειώσετε ότι γύρω από τον κώδικα PHP που εμφανίζει το όνομα χρήστη $, χρησιμοποιήσαμε διπλά εισαγωγικά (") όπως και όταν δηλώνουμε τη μεταβλητή στο JS. Εάν η μεταβλητή PHP είναι ένας αριθμός, τότε δεν χρειάζεται να χρησιμοποιήσετε τα αποσπάσματα. Αλλά βεβαιωθείτε ότι έχετε χρησιμοποιήσει τα αποσπάσματα σωστά, επειδή η συμβολοσειρά εξόδου μπορεί επίσης να περιέχει εισαγωγικά και θα σπάσει τον κώδικα JS.

Πώς να μεταφέρετε μεταβλητές PHP σε εξωτερική JavaScript

Επίσης, ο κωδικός JS μπορεί να αποθηκευτεί στο εξωτερικό αρχείο ( Για παράδειγμα, script.js.) σχετίζεται με Σελίδα html . Για παράδειγμα, εάν θέλετε να μεταφέρετε την τιμή της μεταβλητής χρόνου (σε δευτερόλεπτα) στον χρονοδιακόπτη JS, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα:

...

Κωδικός στο εξωτερικό αρχείο JS ( script.js.):

setimimeout (λειτουργία () (window.lex.href \u003d "/";), δευτερόλεπτα * 1000);

Στον παραπάνω κώδικα, αρχικοποιήσαμε πρώτα την τιμή PHP των μεταβλητών μεταβλητών μεταβλητών μεταβλητών JS δευτερόλεπτα. Μετά από αυτό, η μεταβλητή διατίθεται στο DOM και το σενάριο plug-in ( script.js.) μπορεί να το χρησιμοποιήσει. Στο παραπάνω παράδειγμα, ο χρήστης ανακατευθύνεται Κύρια σελίδα Μετά το καθορισμένο χρονικό διάστημα.

Συμβουλή: Βεβαιωθείτε ότι στο PHP και το JavaScript έχετε εντοπίσει μεταβλητές πριν τις χρησιμοποιήσετε στον κώδικα. Διαφορετικά, θα λάβετε ένα μήνυμα σφάλματος "απροσδιόριστη μεταβλητή" και ο κώδικας δεν θα λειτουργήσει.

Ελπίζω ότι αυτό το άρθρο θα είναι χρήσιμο και το μοιράζεστε με φίλους.

Μετάφραση του άρθρου " Πώς να συμπεριλάβετε μεταβλητές PHP στο JavaScript"Ετοιμάθηκε από μια φιλική ομάδα ομάδας.

Καλό κακό

    Με αυτό το σενάριο, μπορείτε να προσθέσετε τυχόν συμβουλές και διαφημίσεις για τους επισκέπτες στον ιστότοπό σας. Το σενάριο αποτελείται από εξωτερικά αρχεία Javascripts totdmsg.js και totd.js και html αρχείο ...

Γιατί το ζήτημα της μεταβίβασης μιας μεταβλητής από τη γλώσσα στη γλώσσα - το ζήτημα ενός αρχάριου; Επειδή είναι αδύνατο να το κάνετε! Προγραμματισμός Γλώσσες κάθε ανεξάρτητα εργασία. Και η μεταφορά απευθείας μεταξύ τους είναι αδύνατη. Τώρα θα εξηγήσω γιατί.

Το γεγονός είναι ότι το PHP και το JavaScript σχετίζονται μόνο υπό όρους. Το PHP τρέχει στο διακομιστή και το JavaScript βρίσκεται στο πρόγραμμα περιήγησης.

Επιτρέψτε μου να σας υπενθυμίσω τον αλγόριθμο του Διαδικτύου. Δηλαδή, τι συμβαίνει όταν ζητάτε τη διεύθυνση ..

  1. Το πρόγραμμα περιήγησης σχηματίζει τις κεφαλίδες αιτήσεων, τους συνδέει μερικές σημαντικές πληροφορίες για τον εαυτό του και τους στέλνει σε αυτή τη διεύθυνση.
  2. Ο διακομιστής παίρνει κεφαλίδες και καταλαβαίνει τι πρέπει να πληρώσετε το έγγραφο. Κατανοεί ότι το έγγραφο δεν ζητείται, αλλά ένα πρόγραμμα. Στη συνέχεια, εγκαινιάζει αυτό το πρόγραμμα και δίνει όλα τα δεδομένα που έλαβε από το πρόγραμμα περιήγησης.
  3. Το πρόγραμμα (Script PHP) ξεκινά, λειτουργεί και απλά εκτυπώνει το αποτέλεσμα της εργασίας του. Το αποτέλεσμα της εργασίας μπορεί να είναι μια σελίδα HTML όπου ενεργοποιούνται τα σενάρια JavaScript. Θυμάσουμε όμως ότι αυτή τη στιγμή οι εργασίες PHP και JavaScript για αυτό δεν διαφέρουν από άλλα δεδομένα. Απλά κτυπά.
  4. Ο διακομιστής λαμβάνει ποιο πρόγραμμα τυπωμένο. Συνδέει τις κεφαλίδες απόκρισης και το αναφέρεται όλα στο ζητούμενο πρόγραμμα περιήγησης.
  5. Το πρόγραμμα περιήγησης λαμβάνει τον κωδικό σελίδας και το εμφανίζει. Αισθάνεται Αρχεία (JS, CSS, εικόνες), εφαρμόζει τους σε έναν κώδικα HTML. Και μόνο τώρα το Javascript περιλαμβάνεται στο πρόγραμμα περιήγησης.

Εάν κοιτάξετε προσεκτικά αυτή την εντολή εργασίας, μπορείτε να απαντήσετε στην ερώτηση

Πώς να μεταφέρετε μια μεταβλητή από το PHP στο JavaScript;

Ανάγκη κατά την εκτέλεση pHP Script Απλά σχηματίζετε ένα τέτοιο κείμενο έτσι ώστε να μπορεί στη συνέχεια να εκτελεστεί στο πρόγραμμα περιήγησης. Για παράδειγμα.

alert("".$var.""); ?>

Εάν δημιουργήσετε ένα αρχείο PHP με τέτοιο περιεχόμενο και ξεκινήστε το από το πρόγραμμα περιήγησης - θα δείτε ένα κενό μήνυμα σελίδας και προειδοποίησης.

Φυσικά, πρέπει να θυμάστε ότι η σύνταξη πρέπει να είναι JavaScript. Στην πραγματικότητα, όταν σχηματίσουμε τον κώδικα JS στο PHP - πρέπει να θυμόμαστε ότι στην πρώτη PHP θα δημιουργήσουμε κάτι και αυτό πρέπει να είναι έγκυρο JS.

Σε αυτή την περίπτωση, το σενάριο PHP αποτελεί συμβολοσειρά:

Και αυτό είναι το σωστό javascript, το οποίο θα εκτελεστεί από το πρόγραμμα περιήγησης.

Πώς να μεταφέρετε μια μεταβλητή από το JavaScript στο PHP;

Μπορείτε να μαντέψετε, τα πράγματα είναι πιο δύσκολα. Μετά από όλα, η PHP δημιουργεί JS, αλλά η ανατροφοδότηση δεν υπονοείται ειδικά. Έτσι θέλετε, δεν θέλετε, αλλά πρέπει να δημιουργήσετε ένα νέο αίτημα στο διακομιστή, να περάσετε δεδομένα σε αυτό για το σενάριο. Έχουμε δύο. Η εφαρμογή μπορεί να είναι τόσο μέσω συγχρονισμένων όσο και μέσω ασύγχρονων αιτήσεων. Το σύγχρονο θα προκαλέσει επανεκκίνηση της σελίδας και η ασύγχρονη χρήση AJAX.

Σύγχρονη μέθοδος μεταφοράς δεδομένων στο PHP από το JavaScript

Αυτός ο κώδικας θα ανακατευθύνει αμέσως τον χρήστη στο http: //syt/index.php; μήνυμα \u003d hello% 2c% 20server!

Ο κώδικας PHP στο αρχείο ευρετηρίου.php θα λάβει δεδομένα από το να πάρει και θα σχηματίσει υπερ-παγκόσμιες συστοιχίες.

Ασύγχρονη μετάδοση μεταβλητής από το JavaScript στο PHP

Αυτό συνεπάγεται τη χρήση του Ajax. Στην πραγματικότητα, το ίδιο όπως στην προηγούμενη περίπτωση, αλλά η σελίδα του προγράμματος περιήγησης δεν επανεκκινείται. Ο ευκολότερος τρόπος για να το απεικονίσετε χρησιμοποιώντας τη βιβλιοθήκη.

Όπως μπορείτε να δείτε, είναι ακόμα ευκολότερο. Δεν χρειάζεται να εφαρμόσετε τη λειτουργία του κλωστηρίου, εφαρμόζει jquery για εμάς. Περιγράφουμε τη λειτουργία που δέχεται την απόκριση διακομιστή και το διπλώνει στη μεταβλητή δεδομένων. Εάν το Index.php επιστρέφει μόνο την τιμή της μεταβλητής $ _get, τότε θα δούμε ειδοποίηση με το κείμενο "Ο διακομιστής απάντησε: Γεια σας, διακομιστής!".

Μεταφορά σύνθετων αντικειμένων από PHP στο JavaScript

Θυμωναμαστε ότι κατά τη δημιουργία JavaScript από το PHP, πρέπει να τηρήσετε τη σύνταξη JavaScript. Επομένως, πρέπει να μεταφράσετε δεδομένα από την παρουσίαση PHP στο JavaScript. Ο ευκολότερος τρόπος για να το κάνετε αυτό χρησιμοποιώντας τη λειτουργία JSON και JSON_ENCODE (), η οποία θα μετατρέψει το αντικείμενο ή massif php. Σε μια συμβολοσειρά που, κατά την εκτέλεση της μηχανής JavaScript, θα δώσει ένα αντικείμενο JavaScript.

"123", "KEY" \u003d\u003e "Αξία"). $ js_obj \u003d json_encode ($ arch); Τυπώνω ""; ?>

Εδώ μπορείτε να αρχίσετε να συγχέεται. Αλλά δεν υπάρχει τίποτα τρομερό. Αρκεί να θυμάστε την ακολουθία. Πρώτον, η PHP εκτελείται, στη συνέχεια JavaScript. Μετά την εκτέλεση της PHP θα είναι:

Ότι κατά την εκτέλεση με αμερικανική ειδοποίηση με το κείμενο "123".

ΣΥΝΟΛΟ

Πρέπει να θυμάστε ότι το PHP δημιουργεί JS, οπότε είναι πολύ απλό να μεταδώσετε δεδομένα από αυτό. Πρέπει να σχηματίσουν το JS καθώς και το HTML σχηματίζεται. Με σύνταξη JavaScript.

Για τα δεδομένα από το JS στο PHP, χρησιμοποιείται πάντοτε πρόσθετη αίτηση. Πώς γίνεται - η δέκατη επιχείρηση. Για παράδειγμα, μπορεί να διαγραφεί μια φόρμα. Ή ανοιχτό iframe. Αλλά η ουσία παραμένει. Κατανόηση αυτής της ουσίας, μπορείτε να μεταφέρετε οποιαδήποτε δεδομένα από το πρόγραμμα περιήγησης στο διακομιστή και η πλάτη είναι αρκετά απλή.

Έτσι συνέβη έτσι από τη φύση της δραστηριότητας πρέπει να απαντήσω τόσο σε σύνθετα τεχνικά θέματα όσο και ειλικρινά nubski. Τι να κάνετε, το επίπεδο προετοιμασίας διαφόρων ειδικών είναι διαφορετικό.

Ρώτησε: "Πώς να μεταφέρετε μια μεταβλητή από το JavaScript σε Php." Η απάντηση σε αυτή την ερώτηση θα ήθελε να ξεκινήσει με το γεγονός ότι η JavaScript και η PHP εκτελούνται σε διαφορετικές φυσικές μηχανές, πράγμα που σημαίνει ότι είναι εύκολο να «περάσει η μεταβλητή», στη συνήθη κατανόηση αυτής της διαδικασίας, δεν θα λειτουργήσει.

Δεδομένου ότι η Javascript εκτελείται στο μηχάνημα πελάτη (πελάτη) και το PHP στο διακομιστή (διακομιστή), θα καλέσουμε τη μετάδοση δεδομένων μεταξύ JavaScript και PHP τον όρο "Exchange Client-Server", θα είναι πιο σωστό.

Στην ανταλλαγή δεδομένων Web γίνεται σύμφωνα με το ακόλουθο σχήμα: ένα αίτημα από τον πελάτη μεταδίδεται στο διακομιστή, το αίτημα αυτό επεξεργάζεται από το διακομιστή, μετά την οποία επιστρέφει ορισμένα δεδομένα στον πελάτη (απάντηση). Αυτή η μέθοδος ανταλλαγής χρησιμοποιεί το ίδιο το πρόγραμμα περιήγησης. Η διεύθυνση URL που σκοράρει στη γραμμή διευθύνσεων - και υπάρχει ένα αίτημα. Και η απάντηση είναι HTML, η οποία εμφανίζεται στη σελίδα του προγράμματος περιήγησης.

Ωστόσο, τα δεδομένα από το διακομιστή πρέπει να ζητήσουν το ίδιο το πρόγραμμα περιήγησης. Ο κωδικός σας στο Javascript, το οποίο περιστρέφεται σε μια σελίδα, μπορεί επίσης να λειτουργήσει ως πελάτης. Για να το κάνετε αυτό, χρησιμοποιήστε το ενσωματωμένο στοιχείο του Xmlhttprequest στοιχείο του προγράμματος περιήγησης, το οποίο μπορεί να παράγει αιτήματα στον διακομιστή και να λάβει απαντήσεις από αυτό, ενώ η ίδια η σελίδα HTML δεν ενημερώνεται και δεν αλλάζει με κανέναν τρόπο.

Η συνεργασία με ένα διακομιστή μέσω ενός αντικειμένου XMLHTTPREQuest ονομάζεται συχνά μια πιο δημοφιλής λέξη - Ajax.

Ωστόσο, προσωπικά δεν συνιστώ να εργάζεστε άμεσα με αυτό το αντικείμενο. Το γεγονός είναι ότι Διαφορετικά προγράμματα περιήγησης Λειτουργεί λίγο διαφορετικό και θα πρέπει να ληφθεί υπόψη στον κώδικα. Επιπλέον, το "καθαρό" javascript δεν έχει βολικά εργαλεία για να συνεργαστεί με γεγονότα, οπότε θα έχετε έναν αξιοπρεπή κωδικό "λιμάνι tunic", το οποίο είναι επίσης "buggy" πιο πιθανό.

Ο κώδικας που χρησιμοποιεί αυτή τη βιβλιοθήκη λαμβάνεται αρκετά απλή και συνοπτική. Για παράδειγμα, εάν πρέπει να περάσετε την τιμή V \u003d 6789 στον διακομιστή, μπορείτε να εκτελέσετε τον ακόλουθο κώδικα.

Jquery.get ("/ index.php? V \u003d 6789", λειτουργία (αποτέλεσμα) (προειδοποίηση (αποτέλεσμα)).

Σε αυτή την περίπτωση, το σενάριο σας στο /index.php θα πάρει μια αξία σε μια μεταβλητή $ _get ['V']. Και ό, τι θα αποσυρθεί στο ρεύμα εξόδου (για παράδειγμα, η χρήση της ECHO) θα πέσει στη μεταβλητή αποτελεσμάτων και θα εμφανιστεί στο παράθυρο διαλόγου Ειδοποίηση ().

Όπως μπορείτε να δείτε, όλα είναι απλά.

Μπορείτε επίσης να στείλετε δεδομένα μέσω ταχυδρομείου, καθώς και να στείλετε τα δεδομένα που κωδικοποιούνται στο JSON (την πιο συχνά χρησιμοποιούμενη μέθοδο), αλλά συνιστούμε να το διαβάσετε μόνοι σας στην τεκμηρίωση JQuery (βλ. Methods.Ajax (), .Post ()) .

8 απαντήσεις

Το HTML / http είναι ένας apatrid, με άλλα λόγια, αυτό που κάνατε / βλέπετε στην προηγούμενη σελίδα δεν είναι πλήρως συνδεδεμένη με την τρέχουσα σελίδα. Εκτός όταν χρησιμοποιείτε κάτι σαν συνεδρίες, μπισκότα ή πάρτε / ταχυδρομήστε. Συνεδρίες Ι. Αρχεία cookies Πολύ απλή στη χρήση, και η συνεδρία είναι πολύ ασφαλέστερη από τα μπισκότα. Ασφαλέστερο, αλλά όχι εντελώς ασφαλές.

συνεδρίαση:

// στη σελίδα 1 $ _session ["varname"] \u003d $ var_value; // στη σελίδα 2 $ var_value \u003d $ _session ["varname"];

Μην ξεχάσετε να εκτελέσετε session_start (); Και στις δύο αυτές σελίδες πριν προσπαθήσετε να αποκτήσετε πρόσβαση στη συστοιχία $ _session, καθώς και πριν από οποιαδήποτε έξοδος θα σταλεί στο πρόγραμμα περιήγησης.

// Μια σελίδα 1 $ _cookie ["varname"] \u003d $ var_value; // στη σελίδα 2 $ var_value \u003d $ _cookie ["varname"];

Η μεγάλη διαφορά μεταξύ των αρχείων συνεδριών και των cookies είναι ότι η τιμή της μεταβλητής θα αποθηκευτεί στο διακομιστή εάν χρησιμοποιείτε συνεδρίες και στον πελάτη εάν χρησιμοποιείτε cookies. Δεν μπορώ να βρω με κανένα σοβαρό λόγο για να χρησιμοποιήσω τα cookies αντί για συνεδρίες, εκτός εάν θέλετε να αποθηκευτούν τα δεδομένα μεταξύ των συνεδριών, αλλά ακόμα και τότε είναι δυνατόν να τα αποθηκεύσετε κατά προτίμηση στη βάση δεδομένων και να τα βάλετε στο όνομα χρήστη ή το αναγνωριστικό .

Πάρτε και δημοσιεύστε.

"\u003e Σελίδα2

Αυτό θα δημιουργήσει μια μεταβλητή θα πάρει.

Ένας άλλος τρόπος είναι να ενεργοποιήσετε ένα κρυφό πεδίο με τη μορφή που παρουσιάζεται στη δεύτερη σελίδα:

Και στη συνέχεια στη δεύτερη σελίδα:

// χρησιμοποιώντας το Get $ var_value \u003d $ _get ["varname"]; // χρησιμοποιώντας post $ var_value \u003d $ _post ["varname"]; // Χρησιμοποιώντας το Get, Post ή Cookie. $ var_value \u003d $ _request ["varname"];

Απλά αλλάξτε τη μέθοδο δημοσίευσης αν θέλετε να το κάνετε μέσω του μηνύματος. Και οι δύο είναι εξίσου μη ασφαλείς, αν και πάρουν είναι ευκολότερο να hack.

Το γεγονός ότι κάθε νέο αίτημα, με εξαίρεση τα δεδομένα της συνεδρίας, μια εντελώς νέα εμφάνιση του σεναρίου που με πιάστηκε όταν άρχισα για πρώτη φορά την κωδικοποίηση στο PHP. Μόλις συνηθίσετε αυτό, είναι αρκετά απλό.

Ευχαριστώ για τις παραπάνω απαντήσεις. Εδώ, όπως έκανα, ελπίζω ότι αυτό θα βοηθήσει όσους ακολουθούν. Θέλω να μεταφέρω τον αριθμό εγγραφής από τη μία σελίδα στην άλλη, έτσι ώστε να ", το Regname και το Regvalue:

Δημιουργήστε την πρώτη σας σελίδα, ονομάστε το set_reg.php.:

Δημιουργήστε τη δεύτερη σελίδα σας, ονομάστε το get_reg.php.:

Επιστροφή στο set_reg.php.

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

Μπορείτε να το εισάγετε ως κρυφό πεδίο στο σχήμα σας ή να προσθέσετε τη διεύθυνση URL της δράσης των μορφών σας

Ηχώ " ";

Ηχώ "

";

Παρακαλείστε να σημειώσετε ότι απεικονίζει επίσης τη χρήση HTMLenties και URLENCODE όταν η μετάδοση δεδομένων.

Μεταφορά δεδομένων στη σύνοδο

Εάν τα δεδομένα δεν χρειάζεται να μεταδοθούν στην πλευρά του πελάτη, τότε οι συνεδρίες μπορεί να είναι πιο κατάλληλες. Απλά καλέστε την Session_Start () στην αρχή κάθε σελίδας και μπορείτε να πάρετε και να ορίσετε τα δεδομένα στη συστοιχία $ _session.

Ασφάλεια

Καθώς καθορίζετε ότι η αξία σας είναι στην πραγματικότητα ένα όνομα αρχείου, πρέπει να γνωρίζετε σχετικά με τις συνέπειες ασφαλείας. Εάν το όνομα του αρχείου προήλθε από την πλευρά του πελάτη, υποθέστε ότι ο χρήστης παρενέβη σε αυτή την τιμή. Ελέγξτε το στην αξιοπιστία! Τι συμβαίνει όταν ο χρήστης μεταδίδει τη διαδρομή σε ένα σημαντικό αρχείο συστήματος ή ένα αρχείο υπό τον έλεγχό του; Μπορεί το σενάριο σας να χρησιμοποιηθεί για να "αισθάνεται" ένα διακομιστή για αρχεία που υπάρχουν ή δεν υπάρχουν;

Δεδομένου ότι ξεκινάτε από εδώ, αξίζει να σημειωθεί ότι αφορά οποιαδήποτε δεδομένα που λαμβάνονται στο $ _get, $ _post ή $ _cookie. Ας υποθέσουμε ότι ο χειρότερος εχθρός σας έχει δημιουργήσει το περιεχόμενο αυτών των συστοιχιών και τον κώδικα, αντίστοιχα!

Υπάρχουν τρεις μέθοδοι μετάδοσης αξίας σε PHP.

  • με ΤΑΧΥΔΡΟΜΕΙΟ
  • Παίρνω
  • Ρύθμιση μιας μεταβλητής συνεδρίας

Αυτές οι τρεις μέθοδοι χρησιμοποιούνται για διαφορετικούς σκοπούς. Για παράδειγμα, αν θέλουμε να πάρουμε το νόημά μας στην επόμενη σελίδα, μπορούμε να χρησιμοποιήσουμε τη μέθοδο Post ($ _post) ως: -

$ A \u003d $ _ post ["field-name"];

Εάν χρειαζόμαστε την αξία μιας μεταβλητής σε περισσότερες από μία σελίδες, μπορούμε να χρησιμοποιήσουμε μια μεταβλητή συνεδρίασης ως: -

$ a \u003d $ _ Συνάντηση ["Field-Name];

Πριν χρησιμοποιήσετε αυτή τη σύνταξη για να δημιουργήσετε μια μεταβλητή περιόδου σύνδεσης, πρέπει πρώτα να προσθέσουμε αυτήν την ετικέτα στην αρχή της σελίδας PHP μας

Session_start ();

Η μέθοδος λήψης χρησιμοποιείται συνήθως για την εκτύπωση δεδομένων στην ίδια σελίδα που χρησιμοποιήθηκε για την εισαγωγή δεδομένων από τον χρήστη. Η σύνταξή του είναι:

$ a \u003d $ _ Πάρτε ["Field-Name"];

Η μέθοδος Post είναι συνήθως πιο ασφαλής από ό, τι και όταν χρησιμοποιούμε τη μέθοδο λήψης από ό, τι μπορεί να εμφανίσει τα δεδομένα στη συμβολοσειρά URL. Εάν τα δεδομένα είναι πιο ευαίσθητα δεδομένα, όπως ο κωδικός πρόσβασης, μπορεί να είναι inggeris.

Συνεχίζοντας το θέμα:
Λινάρι

Ο χρήστης στην ορολογία των προδιαγραφών) είναι ένα λογισμικό στο πλάι του συνδρομητή, το οποίο σας επιτρέπει να λαμβάνετε, να στείλετε, να δείτε και να επεξεργαστείτε ...

Νέα άρθρα
/
Δημοφιλής