Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    5

    $.mobile.changePage non funziona

    Salve ragazzi, sono alle prese con un problema un po' rognoso e spero che qualcuno di voi possa aiutarmi. Riguarda il metodo $.mobile.changePage di jquery mobile, ma prima voglio illustrare la situazione, premettendo alcune cose e dicendo che mi sono basato su un esempio trovato su un altro sito:

    - ho un database mysql con una semplice tabella dove sono memorizzati dei libri
    - ho la tipica classe php che ci fa connettere al db e fa le query...quindi ho la funzione MostraLista che è quella che recupera i dati da visualizzare nella lista...e la lista con tanto di[*] viene creata all'interno di essa.

    Veniamo alla parte jquery mobile e vi scrivo il Body

    <div data-role="page" id="lista">
    <div data-role="header"><h1>Libri</h1></div>

    <div data-role="content">
    <ul data-role="listview" data-theme="d">
    <?php include_once 'classBook.php';
    $book->MostraLista();
    ?>
    /ul>
    <div>
    </div>
    La lista dei libri viene tranquillamente visualizzata. Adesso dovrei semplicemente in base all'elemento cliccato...poter andare nella pagina php in cui mi viene visualizzata tutte le info relative a quel libro specifico.

    Per fare ciò, vorrei sfruttare la navigazione con ajax:
    <script>
    $(document).ready(function(){
    $.mobile.page.prototype.options.backBtnText = "back";
    $('a.item').click(function(){
    var id = $(this).attr('id');
    $.mobile.changePage({
    url: "scheda.php",
    type: "get",
    data: "id="+id
    },"slide");
    return false;
    });
    });
    </script>
    Questa sarebbe la funzioncina che dovrebbe selezionare l'oggetto cliccato e quindi far aprire la pagina scheda.php con l'id specifico.
    Praticamente questo script funziona benissimo con la versione di jquery e jquery mobile dell'esempio su cui mi sono basato, il problema è che è una versione di un annetto e mezzo fa. Con le versioni più recenti...direi almeno quelle dell'ultimo anno, non sembra funzionare.

    Ho pensato che forse poteva il $(document).ready(function()), visto che sulla documentazione di jquery mobile ormai dice di utilizzare $(document).bind('pageinit, function()). Però in questo caso mi pare che non centra nulla..tra l'altro provando a piazzare un alert prima della chiamata ajax...l'alert appare. Sembra proprio che non venga effettuata la chiamata ajax. Forse non gli piace data: "id="+id ?

    p.s. ovviamente senz ajax..ma gestendo il tutto all'interno della funzione php per quanto riguarda gli indici con tanto di rel-external funziona. Ma io vorrei fare il tutto con ajax.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    $.mobile.changePage("scheda.php", {
    type: "get",
    data: "id="+id
    transition: "slide"
    });

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    5
    Ti ringrazio moltissimo Vindav! Ho provato a fare la modifica ed ora è tutto funziona! Quindi semplicemente era cambiata leggermente la sintassi e l'ordine in cui passare i parametri. Tra l'altro ho notato che anche le transizioni devono essere il primo parametro tra quelli opzionali...nel mio caso va prima del type e data.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.