Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-02-2014, 16:33   #1
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
[PHP] Ordinamento dinamico degli elementi visualizzati

Sera!

Ho realizzato un semplicissima pagina PHP con la quale visualizzo i record presenti nel database, supponiamo:
Codice PHP:
mysql_query("SELECT * FROM tabella ORDER BY rand()"); 
All'utente, vorrei dare la possibilità di cambiare il tipo di ordinamento es.
- ORDER BY id DESC
- ORDER BY price
- ORDER BY name
etc...

Come faccio a realizzarlo senza che la pagina venga ricarica e quindi con un refresh della visualizzazione degli elementi secondo l'ordinamento scelto?

Grazie.
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
Old 14-02-2014, 18:15   #2
OoZic
Senior Member
 
L'Avatar di OoZic
 
Iscritto dal: Nov 2010
Città: Londra
Messaggi: 620
https://datatables.net/
__________________
> This is me <
When you gaze long into an abyss the abyss also gazes into you.
OoZic è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2014, 19:53   #3
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
Uhm...grazie...vedrò di dargli un'occhiata!
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2014, 00:39   #4
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
L'ho visto, ma sembra che sia più adatto alla visualizzazione di una griglia di lavoro tipo Excel o simili.

Io invece dovrò usarlo per una pagina che contiene informazioni riguardanti appartamenti, quindi con Immagini, Tiolo, etc...organizzati in blocco verticali...per capirci un pò la disposizione che hai Ebay annunci...
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2014, 07:37   #5
jeremy.83
Senior Member
 
L'Avatar di jeremy.83
 
Iscritto dal: May 2007
Città: DiSaronno Originale
Messaggi: 2376
Io caricherei l'intero div o pagina, non so cos'hai, in ajax
__________________
Dell XPS 9570 Powered by Arch Linux || Motorola Edge 50 Fusion
Ho concluso con raffaelev, Iceworld, stebru, Dichy, AXIP, Quakeman e Swampo
jeremy.83 è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2014, 22:20   #6
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
Quote:
Originariamente inviato da jeremy.83 Guarda i messaggi
Io caricherei l'intero div o pagina, non so cos'hai, in ajax
Quindi con un refresh dell'intero DIV che contiene i miei elementi da visualizzare dici?
Uhm....non ho le idee molto chiare...tenterò con un'altra ricerca sul WEB.
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2014, 07:37   #7
jeremy.83
Senior Member
 
L'Avatar di jeremy.83
 
Iscritto dal: May 2007
Città: DiSaronno Originale
Messaggi: 2376
Quote:
Originariamente inviato da robertino_salemi Guarda i messaggi
Quindi con un refresh dell'intero DIV che contiene i miei elementi da visualizzare dici?
Uhm....non ho le idee molto chiare...tenterò con un'altra ricerca sul WEB.
Sì, se usi framework javascript come JQuery o simili è molto semplice, lanci un ajax e fai ritornare un xml che contiene del codice html (io uso xml ma dovrebbe funzionare anche json). Infine prendi quel codice html e lo fai caricare nel div. Così è comodo, se hai necessità nel codice html puoi inserire anche del javascript che potrebbe lanciare altri ajax ecc.

Ciao
__________________
Dell XPS 9570 Powered by Arch Linux || Motorola Edge 50 Fusion
Ho concluso con raffaelev, Iceworld, stebru, Dichy, AXIP, Quakeman e Swampo
jeremy.83 è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2014, 13:23   #8
robertino_salemi
Senior Member
 
L'Avatar di robertino_salemi
 
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
Quote:
Originariamente inviato da jeremy.83 Guarda i messaggi
Sì, se usi framework javascript come JQuery o simili è molto semplice, lanci un ajax e fai ritornare un xml che contiene del codice html (io uso xml ma dovrebbe funzionare anche json). Infine prendi quel codice html e lo fai caricare nel div. Così è comodo, se hai necessità nel codice html puoi inserire anche del javascript che potrebbe lanciare altri ajax ecc.

Ciao
Grazie, il concetto è molto chiaro, il problema sta nella realizzazione del codice...

Potreste darmi un mano?

Grazie.
robertino_salemi è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2014, 10:18   #9
jeremy.83
Senior Member
 
L'Avatar di jeremy.83
 
Iscritto dal: May 2007
Città: DiSaronno Originale
Messaggi: 2376
Lato js, un ajax lanciato così dovrebbe funzionare
Codice:
$.post("tuo_script.php",$("#id_tuaform").serialize(), function(xml){
var risultato=$(xml).find("risultato").text();
$("#id_tuo_div").html(risultato);
});
Lato php invece devi eseguire la query che fai e salvare il codice html in una variabile stringa. Infine devi generare un file xml che abbia un tag "risultato". Io per creare l'xml utilizzo la classe DomDocument.

Saluti
__________________
Dell XPS 9570 Powered by Arch Linux || Motorola Edge 50 Fusion
Ho concluso con raffaelev, Iceworld, stebru, Dichy, AXIP, Quakeman e Swampo
jeremy.83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2014, 11:18   #10
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Secondo me è più corretto convertire i dati in formato json e costruire l'html direttamente sul client sfruttando jquery, in questo modo si riduce il traffico di rete e si sposta il peso dell'elaborazione sul client, rendendo il servizio più efficiente.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2014, 13:59   #11
jeremy.83
Senior Member
 
L'Avatar di jeremy.83
 
Iscritto dal: May 2007
Città: DiSaronno Originale
Messaggi: 2376
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Secondo me è più corretto convertire i dati in formato json e costruire l'html direttamente sul client sfruttando jquery, in questo modo si riduce il traffico di rete e si sposta il peso dell'elaborazione sul client, rendendo il servizio più efficiente.
Potrei anche essere d'accordo, ma dipende anche dalla potenza del client e del server.

Se si sa che il server ha poca banda e poca potenza allora la soluzione client è buona, ma se si ha a che fare con client della grande guerra il caricamento e la composizione della pagina potrebbe essere veramente irritante. Io mi trovo spesso a che fare con client pessimi pieni zeppi di spyware e company e ti assicuro che preferisco far viaggiare il server
__________________
Dell XPS 9570 Powered by Arch Linux || Motorola Edge 50 Fusion
Ho concluso con raffaelev, Iceworld, stebru, Dichy, AXIP, Quakeman e Swampo
jeremy.83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2014, 14:38   #12
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Secondo me (ma è solo una supposizione), costruire gli elementi della pagina invocando i metodi del DOM (anche attraverso jQuery) è comunque più efficiente di eseguire il parsing dell'html inviato dal server per poi generare i medesimi elementi. Inoltre il carico per il client è piccolo e generalmente poco influente sulle prestazioni; il carico sul server è altrettanto piccolo, ma va moltiplicato per tutte le richieste da servire.
E poi c'è il discorso della banda: se è vero che generalmente un server ha una banda di upload mostruosa, non è detto che lo stesso valga per il client.

Ma il vero motivo per cui farei questa scelta è fondamentalmente la maggiore versatilità: sul client arrivano dati strutturati che possono essere formattati in modo dinamico dal browser. Pensa ad esempio di voler dare all'utente la possibilità di visualizzare i dati in diversi formati (ad esempio, elenco o tabellare): i dati sono già a disposizione, basta rigenerare gli elementi del DOM ed il gioco è fatto, nessuna connessione al server, nessun tempo di attesa.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2014, 15:30   #13
jeremy.83
Senior Member
 
L'Avatar di jeremy.83
 
Iscritto dal: May 2007
Città: DiSaronno Originale
Messaggi: 2376
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Secondo me (ma è solo una supposizione), costruire gli elementi della pagina invocando i metodi del DOM (anche attraverso jQuery) è comunque più efficiente di eseguire il parsing dell'html inviato dal server per poi generare i medesimi elementi. Inoltre il carico per il client è piccolo e generalmente poco influente sulle prestazioni; il carico sul server è altrettanto piccolo, ma va moltiplicato per tutte le richieste da servire.
E poi c'è il discorso della banda: se è vero che generalmente un server ha una banda di upload mostruosa, non è detto che lo stesso valga per il client.
E' vero, possiamo fare mille supposizioni, ma dovremmo vederci davanti all'ambito proposto, secondo me le alternative sono valide entrambe e questa è una scelta che deve fare l'utente valutando i pro e contro. Qua si hanno anche a che fare con delle immagini, io preferisco sempre la computazione lato server

Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Ma il vero motivo per cui farei questa scelta è fondamentalmente la maggiore versatilità: sul client arrivano dati strutturati che possono essere formattati in modo dinamico dal browser. Pensa ad esempio di voler dare all'utente la possibilità di visualizzare i dati in diversi formati (ad esempio, elenco o tabellare): i dati sono già a disposizione, basta rigenerare gli elementi del DOM ed il gioco è fatto, nessuna connessione al server, nessun tempo di attesa.
Eh, anche qui dipende dalle situazioni, in caso di query con miliardi di record non conviene secondo me recuperare tutto, ma fare query paginate che ritornano solo gli elementi richiesti, il più delle volte funziona sempre al primo colpo e non devo fare altre ricerche.
Se guardi ad esempio la flexigrid fa questo ragionamento, che d'accordo si occupa di tutto l'html, ma i dati li recupera ogni volta sul server con un ajax
__________________
Dell XPS 9570 Powered by Arch Linux || Motorola Edge 50 Fusion
Ho concluso con raffaelev, Iceworld, stebru, Dichy, AXIP, Quakeman e Swampo
jeremy.83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2014, 15:56   #14
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Ma io mi riferivo alle mere operazioni di formattazione, non di ordinamento e ricerca, per quelle sono pienamente d'accordo con te, se i record sono tanti la paginazione deve essere eseguita sul server a livello DB.
Non ho mai usato flexgrid, però ho utilizzato datatables ed ho ovviamente implementato la parte php per farlo funzionare con ajax, è bastato personalizzare il template già fornito, i dati viaggiano in formato json, mentre il codice html viene generato direttamente da javascript sul browser.
Poi è ovvio che ognuno fa come vuole, ad essere sincero ho iniziato anch'io generando il codice sul server, poi per necessità ho cambiato approccio e mi sono trovato molto meglio.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Grazie a GLIMPSE-17775 il telescopio spa...
Samsung Galaxy A27 5G è ufficiale...
TCL aggiorna la sua gamma di monitor per...
Anche OPPO avrà uno smartphone co...
La Radeon RX 9070 XT appare su Steam e m...
L'America si ribella ai datacenter: bloc...
'Artificial General Engineer': l'IA di J...
Il drone NASA Dragonfly, che voler&agrav...
Stop immediato a Fable 5 e Mythos 5: il ...
"Prime Day Amazon il 23-26 giugno": sì e...
Oggi 2 super MacBook Pro M5 e M5 Pro, 24...
Tineco Floor One Station S9 Artist: il s...
Raggiunte nuove altitudine e velocit&agr...
Apple Watch Series 11 GPS a 339€ su Amaz...
Come un MacBook, ma con la RTX 5070: MSI...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:16.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v