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
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.<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>
Per fare ciò, vorrei sfruttare la navigazione con ajax:
Questa sarebbe la funzioncina che dovrebbe selezionare l'oggetto cliccato e quindi far aprire la pagina scheda.php con l'id specifico.<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>
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.