Προς το περιεχόμενο

Παράμετρος σε Javascript και HTML


Spect~

Προτεινόμενες αναρτήσεις

  • Moderators

χαιρετω τους προγραμμαιστες του φορουμ!!

θα μπω απευθειας στο ψητο!!!

βοηθαω ενα φιλο μου σε μια εργασια που εχει και εχω σκαλωσει σε ενα κομματι!

υπαρχει μια λιστα με νομους! και θελω οταν καποιος επιλεγει ενα νομο να ανοιγει ενα συγκεκριμενο 

html το οποιο καλεί ενα σκριπτακι που φιλτραρει τα δεδομενα που θα εμφανιστουν! το προβλημα ειναι οτι αναλογα με το πιο αντικειμενο επιλεξει θα πρεπει να στειλει και την λεξει κλειδι ωστε να κανει την αναζητηση! μπορει καποιος που ξερει να βοηθησει στο πως θα γινει αυτο?

 

η διαδικασια ειναι επιλογη απο τη HTML που περιεχει τη λιστα,επιλεγουμε το νομο απο τη λιστα->ανοιγει το html->το οποιο καλει το σκριπτακι για την εμφανιση των δεδομενων!(εδω θα πρεπει να μπει σαν παραμετρος το ονομα του νομου το οποιο θα πρεπει με καποιο τροπο να το παιρνει απο το HTML που περιεχει την λιστα

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

η καθε γραμμη στη λιστα ειναι αυτης της μορφης

 

<li data-theme="b"><a href="kerkira.html" class="ionio">Νομός Κέρκυρας<span class="ui-li-count">3</span></a></li>

 

οταν ανοιξει το kerkιρα.html θελω να του περασω μια τιμη (το ονομα του νομου) ωστε να καλεσει ενα σκριπτ

και να περασει σαν μεταβλητη την τιμη αυτη!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

τι να σου πω. αυτο πρεπει να το κανεις σε server side. Τωρα σε client side... ξερω γω, περνα το με anchor.

πχ τπ , <a href='kerkira.html#whateva'..

και μετα το παιρνεις με window.location.hash

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators
Δημοσ. (επεξεργασμένο)

το αλλο που σκεφτηκα ειναι να φτιαχνει ενα αρχειακη με την τιμη αυτη ωστε να το ανοιγει μετα το σκριπτ αλλα

πολυ μπακαλικη λυση!

 

καταφερα να περασω την τιμη που ηθελα με τον τροπο που ειπες

αλλα τωρα εχω αλλο ενα μικρο προβληματακι! το html που ανοιγει εχει ενα σκριπτ που τρεχει onLoad

εκει του περναω σαν παραμετρο την τιμη που παιρνω με το location.hash αλλα την πρωτη φορα δεν εμφανιζει τα δεδομενα! αν κανω refresh τα εμφανιζει κανονικα! καμια ιδεα για αυτο?/

 

<body onload='x(window.location.hash.substring(1))'>

 

με λιγο debugging προσεξα οτι το κολλημα την 1η φορα που φορτωνει το τρωει σε αυτη την εντολη

$('#weatherList').empty();

αν το κανω reload την διαβαζει κανονικα και συνεχιζει! για ποιο λογο ομως οταν ανοιγει για 1η φορα

το html αυτο και τρεχει το σκριπτ δεν δουλευει σωστα?

Επεξ/σία από Spect~
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δοκίμασε την παράμετρο που θέλεις να την περνάς με cookie (αλλιώς κάνε το όπως είπες, με αρχειάκι). Ιδανικά όμως όπως είπε και ο πάπι το κάνεις σε server side.

 

ΥΓ. Επίσης, επειδή δεν μου είναι ξεκάθαρο αν το γνωρίζεις ήδη, το location.hash δεν κάνει τη δουλειά που κάνει το $('#weatherList'). Το 2ο επιλέγει με jQuery τo 1ο element στο DOM που του έχεις βάλει ως attribute το: id="weatherList", ενώ το 1ο ψάχνει στο uri για #.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

με cookie πως γινεται? εχεις καποιο παραδειγμα ευκαιρο να το κοιταξω?

 

ναι το ξερω οτι ειναι δυο τελειως διαφορετικα πραγματα!! απλα την πρωτη φορα που φορτωνει την σελιδα κολλαει σε αυτη την γραμμη!

γιατι εβαλα μια αλερτ να δω που τρωει το σκαλωμα και την πρωτη φορα που ανοιγει την σελιδα δουλευει μεχρι πριν απο αυτη την εντολη! αν κανω refresh δουλευει κανονικα και αυτη η εντολη! (το γιατι δεν εχω ιδεα)

 

ΥΓ: γιατι δεν ειναι "σωστο" να το κανω με τον τροπο που το εχω τωρα? (αυτο ειναι για εγκυκλοπεδικες γνωσεις :P )

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν ξέρω γιατί τρώει κόλλημα το location.hash... μήπως δεν τσεκάρεις την περίπτωση που λείπει από το uri;

 

Σε ότι αφορά το cookie, έχει κι αυτό τα θεματά του (π.χ. μπορεί να τα έχει κλειστά ο χρήστης) οπότε το αρχειάκι ή το window.location.hash ίσως είναι καλύτερες εναλλακτικές.

 

Αν θέλεις να το κάνεις με cookie, σου έγραψα στο πόδι βασικές συναρτήσεις διαχείρισής του...

 

 

 

//
function create_cookie(name, value, days)
{
    if ( days ) {
        var date = new Date();
        date.setTime( date.getTime() + (days*24*60*60*1000) );
        var expires = "; expires=" + date.toGMTString();
    }
    else
        var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}
//
function read_cookie( name )
{
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i=0; i < ca.length; i++)
    {
        var c = ca[i];
        while ( ' ' == c.charAt(0) ) {
            c = c.substring(1, c.length);
        }
        if ( 0 == c.indexOf(nameEQ) ) {
            return c.substring(nameEQ.length, c.length);
        }
    }
    return null;
}
//
function erase_cookie ( name ) {
    create_cookie(name, "", -1);
}
//
function cookies_are_enabled()
{
    create_cookie("cookies_test", "Cookies test", 0);
    if ( null != read_cookie("cookies_test") ) {
        erase_cookie("cookies_test");
        return true;
    }
    return false;
}
 

 

 

και κατόπιν στο kerkira.html λες π.χ...

...
$(document).ready( function(){
    if ( cookies_are_enabled() && 'kerkira' === read_cookie('nomos') ) {
        // εδώ ο νομός έχει όντως διαβαστεί ως 'kerkira',
        // οπότε κάνε αυτό που θέλεις να κάνεις με αυτόν
        ...

        // μετά σβήσε το cookie
        erase_cookie('nomos');
    }

});

...
Στη σελίδα που περιέχει τη λίστα με τα links, βάζεις στο κάθε link ένα id, π.χ....

<ul>
    <li><a id="id-kerkira" href="...">Νομός Κέρκυρας</a></li>
    <li><a id="id-attiki" href="...">Νομός Αττικής</a></li>
    ...
</ul>
και στο σκριπτ αυτής της σελίδας βάζεις κάτι του στυλ...

$(document).ready( function() {
    if ( cookies_are_enabled() ) {
        $('#id-kerkira').click( function() {
            create_cookie('nomos', 'kerkira', 0);
        });
        $('#id-attiki').click( function() {
            create_cookie('nomos', 'attiki', 0);
        });
        ...
    }
});
Το 0 ως 3ο όρισμα σημαίνει πως το cookie θα γίνει expire όταν ο χρήστης κλείσει τον browser.

 

ΥΓ. Άλλοι μπορεί να σου δώσουν πολύ καλύτερο και πιο ιδιωματικό κώδικα JS από μένα αλλά η γενική ιδεα με τα cookies αυτή είναι.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

δεν χρειαζοταν να τα γραψεις ολα αυτα  !! κανενα λινκ αν ειχες εννοουσα :P ευχαριστω παντως! θα τα κοιταξω!!

 

οσο για αυτο που ρωτας αν λειπει απο το url οχι δεν το τσεκαρω αλλα με μια αλερτ που εβαλα το παιρνει κανονικα! το προβλημα σου ειπα και πιο πανω που ειναι!!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...

Χρησιμοποιούμε  cookies για να απολαμβάνεις το insomnia προσωποποιημένο στις ανάγκες σου αλλά και για την παροχή στοιχείων επισκεψιμότητας για να βελτιώσουμε την ποιότητα των υπηρεσιών μας