ανανέωση του ίδιου ή άλλου div χωρίς να χαθούν τα δεδομένα από τις μεταβλητές που έχει

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

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

Απάντηση
Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

ανανέωση του ίδιου ή άλλου div χωρίς να χαθούν τα δεδομένα από τις μεταβλητές που έχει

Δημοσίευση από dimos_mitel » 04 Ιαν 2013 18:55

Καλησπέρα σε όλους και καλή χρονιά. Έχω το συγκεκριμένο θέμα: υπάρχει μια σελίδα χωρισμένη σε πολλά div. κάποια από αυτά τα div σχετίζονται μεταξύ τους. για παράδειγμα στο div 1 δημιουργώ μια νέα εγγραφή ενώ παράλληλα στο div με id 2 υπάρχει η διαχείριση των συγκεκριμένων εγγραφών. Σε περίπτωση που δημιουργήσω την εγγραφή στο div με id 1 θα πρέπει να γίνει ανανέωση του div 2 προκειμένου να εμφανίζει μέσα για διαχείριση και την νέα εγγραφή. δοκίμασα να χρησιμοποιήσω την μέθοδο load αλλά σε περίπτωση που σε κάποιο div έχω περάσει τιμές μέσω της μεθόδου GET μετά την ανανέωση του συγκεκριμένου div δεν τις βρίσκει και μου εμφανίζει ένα μήνυμα σαν το εξής:

Notice: Undefined index: id_omadas in C:\wamp\www\diplomatiki\manage_team_teacher2.php on line 5

στην παραπάνω περίπτωση είχα μέσα στο div την μεταβλητή id_omadas την οποία την έπαιρνα μέσω get και εμφάνιζα το κατάλληλο ερώτημα. Μόλις εκτελούσα κάποια ενέργεια και έβαζα την μέθοδο load μετά την ανανέωση της δεν μου εμφάνιζε τίποτα και εβγαζε αυτό το μήνυμα.

Υπάρχει κάποιος άλλος τρόπος εκτός από την χρησιμοποίηση της μεθόδου load? την load την χρησιμοποιώ κάπως έτσι:

$("#item2_section2_2").load("manage_team_teacher2.php");

ευχαριστώ
miteletsis

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

ανανέωση του ίδιου ή άλλου div χωρίς να χαθούν τα δεδομένα από τις μεταβλητές που έχει

Δημοσίευση από dva_dev » 04 Ιαν 2013 20:05

Κάτι δεν έχεις καταλάβει μου φαίνεται σχετικά με τις ιστοσελίδες. Αυτές τρέχουν σε 2 σημεία (σαν 2 κομμάτια) τα οποία δεν έχουν καμία σχέση το ένα με το άλλο. Το ένα (Β) είναι ο server side κώδικας (η php) που τρέχει στο server και το άλλο (Α) είναι η html+javascript που τρέχει στον client. Ακόμα κι αν τα δύο αυτά κομμάτια τρέχουν στον ίδιο υπολογιστή πάλι αγνοούν το ένα την ύπαρξη του άλλου. Η όλη επικοινωνία (http request -τα παίρνεις με $_GET/$_POST/$_REQUEST- http response) περνάει μέσα από ένα "μαύρο κουτί" που δεν δίνει πληροφορίες στο ένα κομμάτι τι/που τρέχει το άλλο.
Οταν η διαδικασία περνάει από το Α στο Β τότε μπορείς να θεωρήσεις ότι το Α ψοφάει και δημιουργείται μόνο το Β και αντίστοιχα όταν περνάει η διαδικασία από το Β στο Α, ότι ψοφάει το Β και δημιουργείται το Α από την αρχή χωρίς να γνωρίζει τίποτα από ότι μπορεί να υπήρχε προηγουμένως. (Με ajax κάνεις μια εξαίρεση, αφού δεν ψοφάει το Α αλλά συνεχίζει να ζει, αλλά το υπόλοιπο σκεπτικό παραμένει το ίδιο).
Οτι πληροφορίες θέλεις να περαστούν από το Α στο Β και αντίστροφα, ο μόνος τρόπος είναι να γίνει μέσω του http request/response. Αν θέλεις κάποια πληροφορία να παραμείνει ζωντανή ανάμεσα σε 2 διαδοχικές εκτελέσεις του Β (αλλά χωρίς να πάει η πληροφορία στο Α και μετά πάλι πίσω στο Β), θα πρέπει να την κρατήσεις σε κάποιo "τρίτο" σημείο (session, database, file, memory, ... - αναλόγως το πόσο persistent θέλεις να είναι). Αυτά φυσικά είναι προσβάσιμα μόνο από το Β και όχι από το Α.

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

Κάποια πράγματα μπορεί να τα λέω απλοϊκά, αλλά δεν νομίζω να τα λέω αντίθετα απ' ότι είναι. Οπου τα αναφέρω λάθος, όποιος θέλει διορθώνει.

Τέλος στο Notice: Undefined index: id_omadas in C:\wamp\www\diplomatiki\manage_team_teacher2.php on line 5 φαντάζομαι ότι πας να διαβάσεις κάποια μεταβλητή από το $_GET αλλά χωρίς να έχεις στείλει τα δεδομένα με το http request. Πιθανώς να ήθελε κάτι σαν $("#item2_section2_2").load("manage_team_teacher2.php?id_omadas=<τιμή του id ομάδας>");

Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

ανανέωση του ίδιου ή άλλου div χωρίς να χαθούν τα δεδομένα από τις μεταβλητές που έχει

Δημοσίευση από dimos_mitel » 04 Ιαν 2013 20:25

λες να βάζω την τιμή του id_omadas σε κάποιο hidden button και μέσω του id του να στέλνω έτσι πάλι την τιμή;; θα το δοκιμάσω έτσι
miteletsis

Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

ανανέωση του ίδιου ή άλλου div χωρίς να χαθούν τα δεδομένα από τις μεταβλητές που έχει

Δημοσίευση από dimos_mitel » 04 Ιαν 2013 20:46

τέλεια! έγινε έτσι. δημιούργησα ένα hidden button και έχω την τιμή εκεί μέσα, ύστερα έκανα την load έτσι $('#item2_section2_2').load('manage_team_teacher2.php?id_omadas=' + $('#id_omadas_m').val());

σε ευχαριστώ πάρα πολύ και για τις συμβουλές σου. δεν πήγε καθόλου το μυαλό μου να το κάνω έτσι.
miteletsis

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

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

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