Uela'!
Pur avendo sempre diffidato delle librerie, ora mi sto innamorando di jQuery.
Però, sarà perché già con Javascript fossi un pippa, sarà perché AJAX non l'ho mai guardato nemmeno di striscio, mi sono letteralmente inchiodato sulle funzioni AJAX del medesimo (jQuery).
Vi spiego "Il Caso".
Devo recuperare il contenuto di almeno 4 <div> da una gallery dinamica in php che attinge ai dati nel DB di MySQL tramite un'unica variabile 'img', che è in relazione all'ID dell'immagine da visualizzare.
I link vengono generati automaticamente dallo script php, quindi per "works.php?img=1" ci sarà una determinata immagine, una sua descrizione, un link all'immagine successiva (se c'è) e uno a quella precedente (sempre se c'è).
Visto che una delle caratteristiche principali di jQuery è la sua "unobtrusività", ho deciso di costruire il tutto direttamente sulla pagina php funzionante. Quindi sfruttando i link già presenti.
(In questo modo, anche in caso di JS disabilitato, la gallery è comunque fruibile tramite php).
Quello che mi serve è recuperare il contenuto che popola dei div con un id costante per ogni pagina.
Con jQuery riesco a recuperare il div intero tramite il .load così:
Codice PHP:
$('#Desc').load('works.php?img=5 #Desc', function(){...}); //Div con la descrizione dell'immagine
$('#Prev').load('works.php?img=5 #Prev', function(){...}); //Div con il link alla prossima immagine
$('#Next').load('works.php?img=5 #Desc', function(){...}); //Div con il link all'immagine precedente
Eccetera...
Solo che in questo modo, ogni volta che 'cambio pagina', effettuo dalle 4 alle 6 chiamate al server!
(Ovviamente il link "works.php?img=5" è fittizio; in realtà è una variabile che pesco tramite:
Codice PHP:
var url = $(this).children('a').attr('href');
LA DOMANDA
Ma non c'è un modo per recuperare tutti gli oggetti che mi servono in una singola chiamata e, chessò, metterli in un array che poi mi posso scorrere 'offline'?
In fondo stanno tutti lì!
Penso di essermi letto tutta la documentazione che c'è in giro sulle funzioni AJAX di jQuery, ma trovo solo esempi "scemi" di gente che si carica degli html dai quali estrae UN solo elemento.
Ho provato a fare un array - che mi sembrava la cosa più logica - con il $.get:
Codice PHP:
var datiCheMiServono [] = $.get('works.php?img=5 #Desc #Prev #Next #eccetera');
ma sembra che non esca fuori niente di buono.
O sono io che sbaglio a fare l'array, oppure a usare l' .each() sull'array, oppure proprio non funzia così.
Ma come funzia, allora?
TIA ;-)
cià
ale