jQuery Dialog postato il 30/11/2011 18:49:51 nel forum programmazione, gdrcd e open source
Buonasera popolo di GDR Online!
Dunque, dunque. Leggendo tra i vari topic qui in programmazione ho visto tanto parlare di "Jquery" e ho pensato bene di vedere un pò di cosa tratta, come funziona e via dicendo. Premetto che, da ignorante, o meglio da persona che si approccia per la prima volta a questo tipo di "codice" lo trovo piuttosto sintetico il che è un bene soprattutto se si sviluppano cose "grosse". Ma vi spiego cosa cerco di fare.
Ho smanettato con qualche plugin come gli accordion e le tabs, e proprio ora (anzi da questo pomeriggio) mi dedico alle finestre Dialogo quelle che permettono di selezionare gli elementi sottostanti alla finestra.
Come per tutto ho linkato la libreria e i css.
Ma cosa voglio fare?
Vorrei provare a far aprire dentro la finestra dialogo (che si aprirà con un click) una pagina già esistente in questo caso di nome provapagina.php
Cosa ho fatto dopo aver linkato la libreria e il css?
Pagine → 1 2
30/11/2011 20:11:04 e modificato da pistacchio il 30/11/2011 20:12:53
ciao,
prima di invocare
30/11/2011 20:16:22 e modificato da leoblacksoul il 30/11/2011 20:19:55
Ciao!
Allora, quello che hai fatto non funziona perchè probabilmente il plugin dialog sovrascrive il comportamento onClick del tag a. E comunque non funzionerebbe perchè dialog non interferisce con i tag a; cosa succederebbe se uno usasse il plugin dialog senza volere che gli intercettasse tutti gli a? Non potrebbe disabilitarlo. Al contrario invece abilitare la cosa è piuttosto semplice.
Devi usare le funzioni Ajax, perchè quello che stai cercando di fare è caricare in un secondo momento contenuto dentro alla pagina che già hai. Ajax è fatto proprio per questo.
Quello che devi fare è leggerti come si usa la funzione .load() di jQuery http://api.jquery.com/load/
Questa funzione carica una pagina automaticamente dentro a un div che gli specifichi.
Stai però attenta che la pagina che vuoi includere NON deve avere al suo interno i tag <html><head><body> etc, deve contenere solo ciò che sarebbe accettato all'interno del <div> in cui vuoi caricare il contenuto.
Questa funzione la puoi usare dentro all'evento dialogopen che il plugin dialog ti mette a disposizione: http://jqueryui.com/demos/dialog/#event-open
Facci sapere se ti serve che venga spiegato in maggiore dettaglio
EDIT: il metodo suggerito da pistacchio va anche bene, ma può essere usato solo ed esclusivamente se nella pagina esiste un solo link che carica cose dentro al dialog. Se invece il dialog può avere contenuti diversi in base al link che usi allora ci vuole quello che ti ho detto io, usando l'evento dialogopen
30/11/2011 20:29:07 e modificato da original_doll il 30/11/2011 20:36:45
Che sciocca! In effetti si ci poteva anche arrivare =)
Ma adesso mi sorgono un paio di dubbi:
Se nella pagina provapagina.php c'è un altro link che va aperto in una nuova finestra dialogo basta che inserito l'id "opener" anche a quel link?
Secondo dubbio: Se invece devo far aprire quel link nella stessa finestra dialogo devo inserire qualcosa, qualche opzione particolare?
EDIT: ho risposto prima di leggere leo, un attimo che leggo eh u.u
@Leo: Allora, diciamo che non ho capito proprio benissimo. Ti spiego la mia situazione. In pratica in questa pagina non ho solo un link, ce ne sono tre, dunque dovrei far corrispondere al click sul pulsante "prova" l'apertura di "paginaprova.php", al click sul pulsante "ciao" la pagina "ciao.php" e al click sul pulsante "hello" la pagina "hello.php"
Ora, non ho ben capito la questione dell'evento opendialog. L'evento opendialog permette di fare ciò che dovrei fare io?
30/11/2011 21:07:48 e modificato da cicciokr il 30/11/2011 21:10:42
30/11/2011 21:14:01 e modificato da pistacchio il 30/11/2011 21:20:03
Ciao mia cara,
ti avevo già scritto una risposta molto carina e dolce, come vuole la mia indole, ma hai avuto la buona idea di sollecitare la mia attenzione tramite un messaggio. Essendo una persona molto curiosa, ho fatto click sulla relativa iconcina divenuta rossa per l'occasione e ho perso quello che stavo scrivendo.
Nel contempo ho perso anche la voglia di riscriverlo, quindi ecco in soldoni cosa puoi provare a fare:
30/11/2011 21:40:20 e modificato da leoblacksoul il 30/11/2011 21:41:58
Stavo pensando più a una cosa così.
Scusa se non ti scrivo l'interno della callback di open ma dovrei esplorare gli elementi event e ui, non mi ricordo il loro contenuto a memoria. (per esplorarlo tu puoi usare FireBug su firefox, chiamando la funzione console.log(oggetto) ti viene stampato il contenuto dell'oggetto nella console
30/11/2011 21:52:51 e modificato da pistacchio il 30/11/2011 22:00:24
Ciao,
gli iframe non sono deprecati. Eccoli nelle specifiche dell'ultima versione di Html (la 5):
http://www.w3.org/TR/html5/the-iframe-element.html#the-iframe-element
Ecco invece la lista degli elementi deprecati (fra cui figurano i frameset):
http://www.html-5.com/changes/deprecated/index.html
E' probabile che lei non stia usando html5, è quindi probabile che nel doctype da lei scelto non siano deprecati neanche i frame (e certamente non lo sono gli iframe che non sono mai stati deprecati da w3).
Il loro uso errato (o abuso) porta alle stesse aberrazioni delle tabelle per il layout, ma hanno il loro posto. Uno dei loro posti naturali è aiutare una persona che ha già difficoltà con il mostrare una finestra modale senza dover introdurre ulteriore complessità con delle chiamate asincrone (come hai fatto giustamente notare relativamente al load()) e senza farle modificare tre pagine che ha già pronte. Una cosa per volta :-)
Il ragù era ottimo, l'abbiamo fatto con i bucatini!
30/11/2011 22:00:27
In effetti ai ragione, mi son confuso con i frame "normali".
Comunque io uso XHTML1.0 Strict
Non darmi del lei >.<
30/11/2011 22:05:25
lei = original_doll ;-)
01/12/2011 01:05:13 e modificato da original_doll il 01/12/2011 01:21:16
Allora, io ho provato, il problema è che non mi fa funzionare i link dentro la finestra dialogo.
Quindi succede che: apro la finestra dialogo cliccando sul pulsante "prova", dentro la pagina ci sono 5 link diversi che dovrei far aprire dentro la finestra dialogo (uno alla volta) ma cliccando su questi link non me li apre nè nel cosiddetto main nè nella finestra dialogo. Se invece tolgo la class, mi apre i link nel "main".
Qual'è l'errore? >.<
Discussione seguita da
Pagine → 1 2
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
I dati del generatore di rank sono stati aggiornati!