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
I dati del generatore di rank sono stati aggiornati!
Midian Realms: Inizio fase di test
Ikariam → Su una piccola isola, in qualche parte del Mediterraneo, sorge un`antica civiltà. Sotto la tua guida inizia un`era di ricchezza e di scoperte!
Il gestore di Il Grande Blu ha risposto alla recensione di spike92
Felix Felicis GdR - Harry Potter GdR: La Resistenza?
venus dormiens ha aperto un annuncio di ricerca: Origo Haeredis - Harry Potter Gdr ricerca Giocatore
Metin2: Server Boost Yohara – Dettagli e FAQ
Enlisted → Guida la tua squadra di soldati in combattimenti su larga scala, con fanteria, veicoli corazzati e aerei della IIa Guerra Mondiale!
Sea of Conquest: Ci dai una mano ai #PocketGamer Awards 2024?
goldaries ha recensito Games of Thrones Winter is Coming
spike92 ha recensito Il Grande Blu
World of Warship: Aggiornamento 13.11: anteprima
Game of Thrones → Pronto a diventare il Signore dei Sette Regni? Guida la tua grande casata in epiche battaglie PvP ed esplora il mondo di Westeros!
gdr-online.com ha risposto alla discussione: Parere su BrowserGame
W40K Dathyar: Specializzazioni
NosTale: Ora nel NosMall: dolcissimi mini-pet
DarkOrbit: Aggiorna la scatola dell'Apocalisse!
World of Tanks → Lanciati in epiche battaglie spalla a spalla con altri giocatori. Conquista la supremazia nel mondo dei Carri Armati!
Ex Gratia GdR - Intervista ai gestori del play by chat supereroistico Ex Gratia GdR!
Gotham GdR - Intervista alla gestione di Gotham - The Animated Series.. il GdR sul mondo di Batman!
Nimenia - Leggi la nostra recensione di Nimenia... gdr fantasy..
GDR dal Vivo - Scopri il fantastico mondo dei gdr dal vivo. Fai muovere il tuo pg :)
Scrittori con i Gdr? - Michela Murgia racconta come è diventata una scrittrice giocando ad un gioco di ruolo online
Giochi Steampunk - Lista completa dei giochi di ruolo online steampunk