Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart
Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart
Mentre Ubisoft vorrebbe chiedere agli utenti, all'occorrenza, di distruggere perfino le copie fisiche dei propri giochi, il movimento Stop Killing Games si sta battendo per preservare quella che l'Unione Europea ha già riconosciuto come una forma d'arte. Abbiamo avuto modo di parlare con Daniel Ondruska, portavoce dell'Iniziativa Europa volta a preservare la conservazione dei videogiochi
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Abbiamo provato il nuovo Galaxy S25 Edge, uno smartphone unico per il suo spessore di soli 5,8 mm e un peso super piuma. Parliamo di un device che ha pro e contro, ma sicuramente si differenzia dalla massa per la sua portabilità, ma non senza qualche compromesso. Ecco la nostra prova completa.
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
Pensato per il professionista sempre in movimento, HP Elitebook Ultra G1i 14 abbina una piattaforma Intel Core Ultra 7 ad una costruzione robusta, riuscendo a mantenere un peso contenuto e una facile trasportabilità. Ottime prestazioni per gli ambiti di produttività personale con un'autonomia lontano dalla presa di corrente che permette di lavorare per tutta la giornata
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: 2374
Io caricherei l'intero div o pagina, non so cos'hai, in ajax
__________________
Dell XPS 9570 Powered by Arch Linux || Motorola One Vision
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: 2374
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 One Vision
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: 2374
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 One Vision
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: 2374
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 One Vision
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: 2374
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 One Vision
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


Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart Intervista a Stop Killing Games: distruggere vid...
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione Samsung Galaxy S25 Edge: il top di gamma ultraso...
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto HP Elitebook Ultra G1i 14 è il notebook c...
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Nuovi coupon nascosti Amazon (aggiorname...
Chatbot e salute mentale: nascono i prim...
Prezzi in ribasso su Amazon su tante com...
Eureka J15 Ultra spiazza la concorrenza ...
Stufi di tagliare il prato? Questi robot...
Anche Dyson si adegua: sconti fino a 200...
Mi sono rotto un dito, e le avventure gr...
Tutto vero: costa solo 899€ il portatile...
Lefant M330Pro da 5.000Pa a 104€ o i due...
Intel tagli ancora: vuole rendere la div...
Tesla sta per lanciare il Robotaxi nella...
Dead Island 2 arriva su Mac, ma a un pre...
FIA e Formula E rinnovano il matrimonio:...
Windows 11 24H2 approda su nuovi sistemi...
Le restrizioni americane hanno generato ...
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: 09:33.


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