Ergebnis 1 bis 3 von 3
  1. #1
    lomex ist offline Grünschnabel
    registriert
    28-05-2010
    Beiträge
    9

    In einer Schleife den Wert einer Variablen an einer Funktion übergeben

    Hallo,

    ich probiere mich gerade an Jquery Mobile.
    Es wird ein JSON per AJAX geladen und die Kategorien sollen ausgegeben werden (läuft).
    Jetzt soll der Index der Kategorie per sessionStorage gespeichert werden (ja, kann man auch per GET übergeben).
    Das Problem:
    Es wird immer die Zahl 6 gespeichert (es gibt 6 Kategorien) bzw. übergeben.
    Wie kann ich statt idx den aktuellen Wert der Funktion übergeben?

    Vielen Dank.

    Code:
    var kategorien;
    var idx;
    
    function save_kategorie(index)
    {
        sessionStorage.setItem("kategorie", index);
    }
    
    $(document).on("pageinit", "#pagekarte", function(data){
        $.getJSON("http://xmltest/test.php", function(data){
            kategorien = data.kategorie;
            idx=0;
            $.each(kategorien, function(index, kategorie) {
                $('#karte').append('<li><a href="#" onclick="save_kategorie(idx)">' + kategorie.titel + '</a></li>');
                idx++;
            });
            $('#karte').listview('refresh');
        })
    });

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.695

    AW: In einer Schleife den Wert einer Variablen an einer Funktion übergeben

    idx ist eine globale Variable und damit überhaupt gar nicht dafür geeignet, was du machen willst.

    Also mach' idx zuerst mal lokal in dem "pageinit". (Ob kategorien auch global sein muss, kann ich jetzt nicht beurteilen - solltest du aber überdenken, da globale Variablen nur Probleme bedeuten.)
    Dann werden Variablen in Strings bei JS nicht geparst (es gibt ja auch keinen Variablenindikator so wie z.B. bei PHP) und der String "Variable a" ist wirklich auch nur dieser String und wenn eine Variable a existiert wird das "a" nicht durch die Variable ersetzt. Das HTML, das du somit an #karte anhängst sieht also falsch aus - an der Stelle, wo das idx eingefügt werden soll musst du das genaus wie kei kategorie.titel machen.

  3. #3
    lomex ist offline Grünschnabel
    registriert
    28-05-2010
    Beiträge
    9

    AW: In einer Schleife den Wert einer Variablen an einer Funktion übergeben

    Das ich die Variable in den String gepackt habe, habe ich später auch gemerkt. Und idx brauche ich auch nicht mehr, da ich mit dem index von each gut zurecht komme (bzw. es gar nicht anders geht).

    Trotzdem danke für die Hilfe.

    Hier mein Beispiel:

    Code:
    $(document).on("pageinit", "#pagekarte", function(data){
        $.getJSON("http://xmltest/test.php", function(data){
            kategorien = data.kategorie;
            $.each(kategorien, function(index, kategorie) {
                $('#karte').append('<li><a href="produktliste.html" onclick="sessionStorage.setItem(\'kategorie\', \'' + index + '\')">' + kategorie.titel + '</a></li>');
            });
            $('#karte').listview('refresh');
        })
    });
    
    
    $(document).on("pageinit", "#pageproduktliste", function(data) {
        $.getJSON("http://xmltest/test.php", function(data) {
            produkte = data.kategorie[sessionStorage.getItem("kategorie")].produkt;
            $.each(produkte, function(index, produkt) {
                $('#produktliste').append('<li><a href="produktdetails.html" onclick="sessionStorage.setItem(\'produkt\', \'' + index + '\')">' + produkt.titel + '</a></li>');
            })
            $('#produktliste').listview('refresh');
        })
    })

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 26-05-2012, 13:58
  2. Antworten: 4
    Letzter Beitrag: 12-04-2012, 17:24
  3. funktion in einer variablen laden
    Von amateur1 im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 03-01-2011, 00:10
  4. Antworten: 9
    Letzter Beitrag: 16-08-2010, 22:59
  5. Wert an zweite Variable einer Funktion übergeben
    Von centauro im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 13-02-2009, 09:31

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •