Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
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


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Avio si prepara ai test del Dimostratore...
Space Pioneer ha annunciato le cause del...
Anthropic avrebbe nuovi antibiotici cont...
Scoperto un 'moltiplicatore nascosto' ne...
DREO: a IFA 2026 4 novità fra cui...
Slackbot genera dashboard e microsite de...
Idrogeno, nuova cella a combustibile rag...
Con la NASA fuori dai giochi, l'ESA risc...
Una falla di ChatGPT permette di estrapo...
Piano clima, 1,34 miliardi per il bonus ...
Porsche esce definitvamente da Bugatti R...
NVIDIA App aggiunge una delle funzioni p...
Come sarebbe il mondo se la luce viaggia...
Titanio, ceramica e zaffiro per HUAWEI W...
Taglio delle accise sul gasolio prorogat...
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: 00:44.


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