Curiosità: ajax - php - js postato il 23/11/2009 18:47:27 nel forum programmazione, gdrcd, open source, hosting e modificato da tdl - staff il 23/11/2009 18:47:49
Ciao!
Avete mai dovuto utilizzare del javascript, non solo funzioni base ma anche funzioni avanzate incluse in un src, dopo aver fatto una chiamata ajax ad una pagina php?
Se si, in che modo? Ad esclusione del metodo eval usato nella stringa di risposta della funzione ajax e il parse di tutti i tag script quali altre possibilità, un pò più professionali ci sono?
Avete degli esempi validi?
grazie, a tutti.
Pagine → 1
23/11/2009 19:33:42
io utilizzo ajax, ma mi appoggio al framework di jquery.
Genericamente invio e ricevo dalle pagine php dei dati in formato JSON perchè mi trovo più comodo.
Nel caso di dubbi sulle destinazioni future d'uso puoi utilizzare xml come formato di interscambio, ma se le pagine sono a destinazione certa html e js puoi usare json tranquillamente.
24/11/2009 16:03:18
Non so dove ho risposta sta mattina :V forse ero troppo addormentato e non ho cliccato invia... cmq riscrivo.
Ho capito, grazie.
Sinceramente io ho provato, questa mattina, ad usare il javascript framework Prototype (prototype.js) mi pare lui stesso faccia uso della funzione eval per valutare le espressioni javascript. So che viene usato in diversi progetti, questo framework, come ad esempio tickbox o script.aculo.us (nn è una parolaccia è proprio scritto così).
Cmq sta di fatto che non riesco a capire come uscire da questo problema. Usando prototype nn riesco a serializare le variabili di un form tramite la funzione $('nomeform').serialize, praticamente nn passa un tubo, quindi la response ajax è vuota. Non posso usare file di appoggio quali csv, txt, bla, perchè devo fare tutto "onthefly" senza scrivere sul disco.
Altra cosa che non spiego è perchè con un semplice uso semplice del javascript ***** (vedi sotto) non riesca a vedere i parametri postati dall'altra parte.
*****
24/11/2009 16:07:13
ti sconsiglio prototype che lo stanno abbandonando, passa a jquery che è similare e più leggero.
il serialize se non te l'ha preso vuol dire che devi aver cannato il riferimento al form.
se ricordo ancora abbastanza bene quella sintassi se usi la dicitura
$('') tra gli apici devi passargli l'id del form, se vuoi utilizzare invece genericamente dei selettori css (ma non ne vedo il motivo) devi utilizzare un $$(''), ma ricordati che in quel caso stai accedendo a un array di oggetti quindi il serialize non ti funziona se lo piazzi secco come funzione.
in ogni caso il serialize è con le () se non ricordo male.
se hai dubbi chiedimi pure l'msn privatamente, in ogni caso butta proto e passa a jquery.
24/11/2009 16:24:13
Guarda findati le ho provate tutte per il serialize, seguendo il tutorial di prototypejs.org (nella sezione apposita).
In realtà $ serve per fare riferimento ad un qualsiasi oggetto con id nella pagina. $$ è per i css come hai detto tu e poi c'è $F che dovrebbe essere per i form cmq... ripeto, le ho provate tutte secondo me è un pò buggato.
Per jquery stavo provando a guardarlo ora purtroppo mi sembra molto macchinoso. Non escludo sia migliore ma ...
24/11/2009 16:54:48
mah oddio se hai capito prototype è più o meno la stessa solfa.
non cambia moltissimo.
prototype non dovrebbe essere buggato cmq.
finchè l'ho usato non ha mai fallito un colpo e non l'ho usato poco, ma massivamente quando ho dovuto.
secondo me sbagli qualcosa anche se non so cosa.
25/11/2009 11:26:58
Si, molto probabile.
Per quanto riguarda jquery... ma ogni cosa è associata ad un evento? mi spiego: in prototype per fare getElementById(' basta che faccio $('
mentre in jquery sembrerebbe basti fare $('# ossia in più c'è il cancelletto. Tuttavia se io lo uso allo stesso modo di prototype mi da un errore fatal exception in firebug.
Quindi ho guardato un pò la documentazione e ho visto che comunque in jquery tutto è associato ad un qualche evento del tipo .click, .ready, .get, e così via.
Quindi poi la sintassi corretta dovrebbe essere $('#...').get(0) il chè mi sembra più macchinoso di prototype. Poi boh magari sbaglio io, eh, è solo da ieri che lo suo.
25/11/2009 14:52:37
no, ci sono i listener ovviamente come click, mouseover ecc ecc, ma tu puoi direttamente accedere e usare tutto senza associarne.
La differenza con prototype è che la chiamata $() cerca l'id di riferimento e lo usa mentre in jquery lui carica l'oggetto in un'array come fa prototype quando usi $$().
la differenza fondamentale (e comoda) è che non esistedo questa differenza in jquery tu non devi castare direttamente o indirettamente i vari casi usando funzioni dirette o invoke a seconda, ma tutto è fatto per essere eseguito lungo tutto l'array di oggetti.
quindi mentre in prototype tu avresti un
$('mioid').show()
e
$$('.mieclassi').invoke('show');
in jquery avresti sempre:
$('#mioid').show()
$('.mieclassi').show()
$('div p.mieclassi').show()
e così via
in jquery lui usa la notazione # perchè anche con la dicitura $() di fatto lui guarda sempre ai selector css e non all'equivalente di un document.getElementById come farebbe prototype.
26/11/2009 13:33:11
Uhm, okay.
Però ti faccio un esempio con una funzione di google maps.
Codice con Prototype:
26/11/2009 14:19:20
corretto.
come ti ho detto sopra lui carica sempre in un array gli oggetti.
Quindi anche se cerchiamo un id che sappiamo essere unico per ovvi motivi, lui carica il singolo oggetto dentro un array in ogni caso.
è una cosa per certi versi stupida applicata al tuo attuale esempio e che ti costringe a usare il get, ma in altre casistiche risulta semplificante e ti fa risparmiare molto più codice che con l'approccio prototype.
essendo un array tu potresti anche dire
$('#mioid')[0];
26/11/2009 14:32:41 e modificato da tdl - staff il 26/11/2009 16:08:50
muchas gracias :-D
EDIT: adesso ci sto prendendo la mano... e lo sto usando insieme a jquery ui... ammetto che rompe il culo! xD (passatemi il termine plz)
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Ex Gratia GDR: Traumi e dove trovarne...
pyro72 ha recensito Crash Bandicoot Zone
Dark Genesis → Ascendi al cielo in Dark Genesis! Raduna potenti semidei, costruisci il tuo impero volante e scontrati in battaglie divine!
blackmirror ha recensito Apocalypse Requiem: Detroit
Dissendium Draconis: Modifiche e Implementazioni: Pozioni
Le Cronache di Raja Dunia: Il Vuoto ed i suoi Principi Demoniaci
masters league si è accreditato come gestore di Masters League
World of Tanks → Lanciati in epiche battaglie spalla a spalla con altri giocatori. Conquista la supremazia nel mondo dei Carri Armati!
I dati del generatore di rank sono stati aggiornati!
Ex Gratia GDR: Nuova Entità: Ichirei!
Nyx Insight - Project S.E.T.: Possibili Rallentamenti del 16/08
neworleans ha aperto un annuncio di ricerca: New Orleans ricerca Giocatore
Sea of Conquest → Vivi un'avventura tra i mari! Dal cuore del Mare del Diavolo, un paradiso piratesco brulicante di magia, tesori e avventure, salperai verso l'ignoto!
Storie di Esperia: Fiori cremisi
Nuovo Browser Game Calcio → Masters League
Sea of Conquest: Evento con The King of Fighters XV! 🌊
Il genere Fantasy Orientale raggiunge i 700 giochi catalogati!
Sea of Conquest → Vivi un'avventura tra i mari! Dal cuore del Mare del Diavolo, un paradiso piratesco brulicante di magia, tesori e avventure, salperai verso l'ignoto!
Statistiche Tecniche 2021 - Gdr-online.com pubblica i dati tecnici dei suoi visitatori per l'anno 2021. Spulcia i dati disponibili!
Mud - Giochi di ruolo online su client telnet..scopri i Mud e la loro storia!
Sei Nerd? - ATTENTO!!1! Potresti essere NERD!11!1 Scoprilo nell'articolo scritto dagli espertissimi!
Scarica GDRCD - Scarica gratuitamente GDRCD. L'Open Source più famoso ed utilizzato per realizzare GdR Play by Chat
Fantastic Beasts - Intervista al gestore del GdR potteriano Fantastic Beasts and where to find them GDR
Dall-E - Cos'è e cosa puoi fare con l'intelligenza artificiale DALL-E per generare immagini?
L'orientalismo e i GdR - L'orientalismo nei giochi di ruolo: un percorso che dura da vari anni. Scopriamone assieme i segreti!
Chronicles of Hogwarts - Intervista al play by forum potteriano Chronicles of Hogwarts!