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 Segui Discussione Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum

I dati del generatore di rank sono stati aggiornati!
Hikaru No Tohei - Le Luci di Tohei: Butanews! - Contest: make your own Kurisumasu 🎅
RAID Shadow Legends → Plasma i tuoi eroi fino a farli diventare vere e proprie armi viventi e assembla i più epici gruppi d'assalto mai visti finora!
Enlisted: Battle Pass: Nona stagione del 2025
Miami Gdr: Riapertura Chat Natalizie
Pandora Upside Down High School: Back to School & Dominion
CRSED: F.O.A.D. → Brutale sparatutto MMO in cui vince l'ultimo giocatore che resta in vita! Il giocatore sarà accompagnato da armi realistiche e magie!
Hero Wars: Avventura di Electra è disponibile! ⚡
Portus: Harry Potter Gioco di Ruolo: Gioco Chiuso!
ericab ha recensito Naruto x Boruto GDR - New Rebirth
Felix Felicis GdR - Harry Potter GdR: Draco Malfoy deve confessare
Dominion Gdr → In una NY con un tessuto sovrannaturale nascosto, la Reggenza Vampirica e il Queens dei Lupi ribollono sotto il Dominio dei Bokor. Quanto durerà la pace?
RAID Shadow Legends: Aragaz Wyldking
War Thunder: Ecco il major update "Spearhead"!
Il portale raggiunge i 17.300 giochi catalogati! Grazie a tutti!
Enlisted → Guida la tua squadra di soldati in combattimenti su larga scala, con fanteria, veicoli corazzati e aerei della IIa Guerra Mondiale!
Assedio! - Scopri le terribili macchine d'assedio militari durante il medievo
Intervista ToSS - Intervista ai gestori del GdR play by chat ambientato nei Forgotten Realms!
Evoluzione Grafica - L'evoluzione grafica nei GDR-online. Abuso di Photoshop contro gioco. Chi vincerà la sfida?
Il Grande Blu - Recensione del GDR manga Il Grande Blu ambientato nel fantastico mondo di One Piece
GdR da Tavolo - Gli amici di GdrItalia.it ci invitano a provare i classici GdR da tavolo
Naruto x Boruto - Intervista allo staff del play by chat Naruto x Boruto GDR - New Rebirth!
Arcane Roleplay - Intervista allo staff dell'MmoRpg ambientato nel mondo di Harry Potter... Arcane RolePlay
