nickolasemp Δημοσ. 6 Απριλίου 2012 Δημοσ. 6 Απριλίου 2012 (επεξεργασμένο) Καλησπέρα παίδες (και κοπέλες; ). Μού έχει φάει ώρες μια μπούρδα σε ένα site. Εξηγώ το πρόβλημα. Έχω ένα menu, όπου όταν πατάει ο χρήστης επάνω του θέλω να αλλάζει ένα συγκεκριμένο κομμάτι της σελίδας δυναμικά (εξ ου και το jQuery με το Onclick). Με το που γίνεται onClick, στέλνω συγκεκριμένα δεδομένα σε μία άλλη σελίδα που κάνει την εξόρυξη των δεδομένων. Θέλω να τραβάω από αυτήν τα δεδομένα και αφού τα τραβάω να τα δείχνω σε κάποιο κομμάτι της σελίδας. Το έκανα με Ajax και δουλεύει. Η σελίδα μου επιστρέφει τον κώδικα που θέλω, αλλά μου τον επιστρέφει ως text... Εγώ θέλω με το που τον επιστρέφει να κάνει και parsing ώστε να τρέχει αυτό τον κώδικα. Ή εάν δεν μπορεί αμέσως, να του κάνω reload. Σας παραθέτω τον κώδικα όπου καλεί την σελίδα php ><script type="text/javascript"> function changemainpage(id) { if (window.XMLHttpRequest) { //code for IE7+. Ffirefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else { //code for IE6,IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4) { HandleResponse(xmlhttp.responseText); } } xmlhttp.open("GET","./newgraph.php?id=unit"+id,true); xmlhttp.send(null); } function HandleResponse (response) { document.getElementById('content').innerHTML=response; [b] document.getElementById('content').src=document.getElementById('content').src;[/b] } </script> Εγώ θέλω με το που μου το επιστρέφει να το εκτελεί κιόλας. Υποτίθεται ότι αυτό κάνει η τελευταία γραμμή. Ορίστε και ο κώδικας που μου επιστρέφει. ><div id="content"><script type="text/javascript" src="./js/dygraph-combined.js"></script> <!--dygraphs are not happy when placed inside a <center> tag. If you want to center a Dygraph, put it inside a table a table with align=center set. For more options go to dygraphs.com/options--> <div id="graphid" style="width:320px; height:290px;"></div>unit1<script type="text/javascript"> var datamatrix=[]; var ylabel='EnergyReckVARh'; var tablet='unit1'; var opts = { title: ylabel+' for '+tablet, }; g = new Dygraph( // containing div document.getElementById("graphid"), // CSV or path to a CSV file. "outfile.csv", opts ); </script></div> Ξέρετε πώς γίνεται με το που μου του επιστρέψει να το τρέχει On the fly? Επεξ/σία 7 Απριλίου 2012 από nickolasemp
nspyrou Δημοσ. 6 Απριλίου 2012 Δημοσ. 6 Απριλίου 2012 Καλησπέρα παίδες (και κοπέλες; ). Μού έχει φάει ώρες μια μπούρδα σε ένα site. Εξηγώ το πρόβλημα. Έχω ένα menu, όπου όταν πατάει ο χρήστης επάνω του θέλω να αλλάζει ένα συγκεκριμένο κομμάτι της σελίδας δυναμικά (εξ ου και το jQuery με το Onclick). Με το που γίνεται onClick, στέλνω συγκεκριμένα δεδομένα σε μία άλλη σελίδα που κάνει την εξόρυξη των δεδομένων. Θέλω να τραβάω από αυτήν τα δεδομένα και αφού τα τραβάω να τα δείχνω σε κάποιο κομμάτι της σελίδας. Το έκανα με Ajax και δουλεύει. Η σελίδα μου επιστρέφει τον κώδικα που θέλω, αλλά μου τον επιστρέφει ως text... Εγώ θέλω με το που τον επιστρέφει να κάνει και parsing ώστε να τρέχει αυτό τον κώδικα. Ή εάν δεν μπορεί αμέσως, να του κάνω reload. Σας παραθέτω τον κώδικα όπου καλεί την σελίδα php ><script type="text/javascript"> function changemainpage(id) { if (window.XMLHttpRequest) { //code for IE7+. Ffirefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else { //code for IE6,IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4) { HandleResponse(xmlhttp.responseText); } } xmlhttp.open("GET","./newgraph.php?id=unit"+id,true); xmlhttp.send(null); } function HandleResponse (response) { document.getElementById('content').innerHTML=response; [b] document.getElementById('content').src=document.getElementById('content').src;[/b] } </script> Εγώ θέλω με το που μου το επιστρέφει να το εκτελεί κιόλας. Υποτίθεται ότι αυτό κάνει η τελευταία γραμμή. Ορίστε και ο κώδικας που μου επιστρέφει. ><div id="content"><script type="text/javascript" src="./js/dygraph-combined.js"></script> <!--dygraphs are not happy when placed inside a <center> tag. If you want to center a Dygraph, put it inside a table a table with align=center set. For more options go to dygraphs.com/options--> <div id="graphid" style="width:320px; height:290px;"></div>unit1<script type="text/javascript"> var datamatrix=[]; var ylabel='EnergyReckVARh'; var tablet='unit1'; var opts = { title: ylabel+' for '+tablet, }; g = new Dygraph( // containing div document.getElementById("graphid"), // CSV or path to a CSV file. "outfile.csv", opts ); </script></div> Ξέρετε πώς γίνεται με το που μου του επιστρέψει να το τρέχει On the fly? Σου έχω ένα link ΕΔΩ το οποίο με βοήθησε κι εμένα να παίξω on-the-fly όταν το χρειάστηκα. Περιγράφει και μέθοδο κλήσης και για ajax. Ελπίζω να σε βοηθήσει.
nickolasemp Δημοσ. 6 Απριλίου 2012 Μέλος Δημοσ. 6 Απριλίου 2012 Σου έχω ένα link ΕΔΩ το οποίο με βοήθησε κι εμένα να παίξω on-the-fly όταν το χρειάστηκα. Περιγράφει και μέθοδο κλήσης και για ajax. Ελπίζω να σε βοηθήσει. Χμμμ, μπορεί να βοηθήσει στο μέλλον (δηλαδή να αποθηκεύω το scriptάκι που δημιουργείται σε ένα js αρχείο και μετά να το καλώ δυναμικά) αλλά εγώ δε θέλω αυτό. Θέλω να το div που μου αντικαθίσταται και έχει μέσα του το javascript να τρέξει εκεί onload. Εσύ το είχες κάπου έτοιμο to scriptάκι και το φόρτωνες δυναμικά;
nspyrou Δημοσ. 6 Απριλίου 2012 Δημοσ. 6 Απριλίου 2012 Εγώ σκέψου οτι το φορτώνω ανάλογα με το τί θέλω να κάνω στο client side. Το επέστρεφα (στην αρχή) από κάποιο αρχείο (μετά από πεδίο της βάσης), και το εκτελούσα εκείνη τη στιγμή. Αλλά έστω κι αν το κάνεις construct στο server side, on-the-fly, δεν νομίζω οτι διαφοροποιείσαι ιδιαίτερα, μιας και το οτι είτε το κάνεις construct, είτε το φορτώνεις από κάποιο data source, καταλήγεις στο να το στείλεις στον client και να το εκτελέσεις. Αλλά νομίζω οτι και με το παρακάτω πρέπει να είσαι εντάξει: > var headID = document.getElementsByTagName("head")[0]; var newScript = document.createElement('script'); newScript.onload = scriptLoaded; newScript.src = "<script type='text/javascript> SCRIPT RETURNED BY AJAX OR SOMETHING </script>"; headID.appendChild(newScript); Επειδή, παίζω με ASP.NET κατά κύριο λόγο, το ίδιο το Page, μου δίνει και τρόπο να κάνω register on-the-fly script, από το server, μέσω της RegisterClientScriptBlock() ... Δεν ξέρω με τί τεχνολογία παίζεις, (php, asp.net, java) ... γι'αυτό αναφέρω το τελευταίο , just in case ...
nickolasemp Δημοσ. 6 Απριλίου 2012 Μέλος Δημοσ. 6 Απριλίου 2012 Εγώ σκέψου οτι το φορτώνω ανάλογα με το τί θέλω να κάνω στο client side. Το επέστρεφα (στην αρχή) από κάποιο αρχείο (μετά από πεδίο της βάσης), και το εκτελούσα εκείνη τη στιγμή. Το είχες έτοιμο. Εγώ δεν το έχω έτοιμο. Δημιουργείται εκείνη την στιγμή και πρέπει ο browser να το τρέξει(παρσάρει) σαν να είναι η αρχική φορά. Ευχαριστώ πάντως. Μπορεί εάν δεν έχει κανένας άλλος κανέναν dynamic call του στυλ reload στον κώδικα της javascript ή με jquery να δοκιμάσω την δική σου οδό αποθηκεύοντάς τα πρώτα σε ένα αρχείο και μετά να καλώ το αρχείο (δαιδαλώδες φαίνεται).
nspyrou Δημοσ. 6 Απριλίου 2012 Δημοσ. 6 Απριλίου 2012 Το είχες έτοιμο. Εγώ δεν το έχω έτοιμο. Δημιουργείται εκείνη την στιγμή και πρέπει ο browser να το τρέξει(παρσάρει) σαν να είναι η αρχική φορά. Ευχαριστώ πάντως. Μπορεί εάν δεν έχει κανένας άλλος κανέναν dynamic call του στυλ reload στον κώδικα της javascript ή με jquery να δοκιμάσω την δική σου οδό αποθηκεύοντάς τα πρώτα σε ένα αρχείο και μετά να καλώ το αρχείο (δαιδαλώδες φαίνεται). Γιατί δεν κάνεις ένα postback για να κάνεις force το reload? Με τί παίζεις? (PHP, ASP, Java) ???
nickolasemp Δημοσ. 6 Απριλίου 2012 Μέλος Δημοσ. 6 Απριλίου 2012 (επεξεργασμένο) Γιατί δεν κάνεις ένα postback για να κάνεις force το reload? Με τί παίζεις? (PHP, ASP, Java) ??? PHP παίζω. Δεν ξέρω καν τί είναι αυτά. Θέλω το reload Να γίνεται μόνο στο div (γιατί άλλα κομμάτια της σελίδας έχουν ήδη ανοίξει την βάση και έχουν διαμορφώσει τη σελίδα, μην την ανοίγω 15 φορές, όχι ότι θα έχει πρόβλημα, αλλά δεν είναι καλό από άποψη resources). Επεξ/σία 7 Απριλίου 2012 από nickolasemp
nickolasemp Δημοσ. 7 Απριλίου 2012 Μέλος Δημοσ. 7 Απριλίου 2012 Τελικά τα κατάφερα με jQuery και παράτησα την javascript. Το μόνο που χρειάζεται είναι το εξής: >function changemainpage(id) { $('#content').load('./newgraph.php?id=unit'+id); } Και τρέχει και δυναμικά και ο κώδικας που επιστρέφει.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα