Newsgroup: it.comp.www.php
Titolo: Aprire pagina in frame da codice

Ciao a tutti, spero possiate aiutarmi. Ho un progetto composto da 
diversi frames. Vorrei che da una funzione, al verificarsi di 
determinate condizioni, vengano caricate specifiche pagine in 2 altri 
frame (diversi da quello dove si trova il codice).
E' possibile? Come devo fare?
Grazie

Potresti provare a generare da php delle istuzioni javascript che
carichino le  pagine nei frame.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
tipo? Ho provato questa strada e non mi è riuscita ...
... la funzione che non sono riuscito a usare era window.open () ...
a me serve fare qualcosa tipo:
If ($discriminante == "si")
{
	ApriUrl ("url_a.php","FrameDestro");
	ApriUrl ("url_b.php","FrameSinistro");
}
else
{
	ApriUrl ("url_c.php","FrameDestro");
	ApriUrl ("url_d.php","FrameSinistro");
}
avete idee?

> E' possibile? Come devo fare?
I frame contengono ognuno una pagina a sé stante.
Per questo motivo non è possibile "lato server", usando solo PHP, 
stabilire a priori, sulla base di determinate condizioni che avvengono 
in una pagina A, il contenuto di una pagina B.
Se lo volessi fare "staticamente", una volta che il frameset è 
visualizzato nel browser del client, basterebbe un link, con un 
attributo "target" che punta al frame voluto. Ma di sicuro non è ciò 
che ti serve in questo caso.
L'unica soluzione, lato server, che mi viene in mente è memorizzare da 
qualche parte il risultato della funzione che determina una data 
condizione (ad esempio in un DB, o in un file di testo, o anche in 
sessione se è univoca per ciascun utente), e controllare proprio questo 
risultato prima di includere o meno la pagina nell'altro frame.
--
rob4you

 rob4you
... dimenticavo grazie delle info. ;)

 fare in modo che la pagina si riaggiorni quando il valore cambia
Se vuoi un aiuto maggiore, forse allora dovresti spiegare meglio il 
problema. :-)
Il valore cambia? Chi lo fa cambiare?
Spiega più in dettaglio cosa vuoi fare, così vediamo di trovare una 
solution.
--
rob4you

 solution.
Niente di così oscuro, per la verità è + per fare una finezza che altro.
Cerco di semplificare al massimo:
Ho 3 frame A e B e C
A contiene un menu (principale)
B contiene il corpo della pagina
C contiene un menu (personalizzato)
Il menu A cambia le pagine, vorrei che al caricamento di una pagina in B 
il menu in C contenga le voci opportune in funzione della pagina aperta 
e dell utente loggato.
Ovviamente è facilmente risolvibile mettendo tutto nello stesso frame ma 
dovrei rivedere tutto e perderei il piacevole effetto del menù che non 
si ricarica ogni volta ...

 si ricarica ogni volta ...
Fallo prima possibile.
I frame sono deprecati, perche` generano (molti) piu` casini di quanti non 
ne risolvano.
Al limite ricorri ad ajax (magari quando sarai piu` esperto) per mantenere 
l'effetto non-ricarica.
Ma ti assicuro che e` molto piu` semplice gestire tutto come un'unica 
pagina.
Bye.

 ricarica ogni volta ...
Se fai un giro nei siti "professionali" ti accorgerai che i "frame" non 
li usa praticamente più nessuno.
Se come dici tu, non vuoi perdere il piacevole effetto del menù A che 
non si ricarica a ogni nuova richiesta, potresti ricorrere a una 
soluzione ajax (richieste al webserver di tipo asincrono) come appunto 
ti suggeriva Alessandro.
In breve in un'unica pagina crei una zona che contiene il menù A, 
un'altra zona destinata a contenere la pagina B, e un'ultima zona per 
il menù C.
Queste che io ho definito "zone" altro non sono ad esempio che dei 
blocchi "div".
Al clic su un link del menù A, avviene via javascript una richiesta 
asincrona xmlhttprequest (il processo viene volgarissimamente detto 
AJAX) al server, il quale restituisce la pagina opportuna.
Quando arriva questa pagina al client, via javascript la vai a 
processare, e la vai a inserire nella zona che precedentemente avevamo 
creato per la pagina B. Idem per la zona destinata ad accogliere la 
pagina C.
Se vuoi un link in italiano da cui partire per fare quanto ti ho 
accennato:
http://javascript.html.it/guide/leggi/95/guida-ajax/
ah, ovviamente tutta la procedura funziona solo se javascript è 
abilitato sul browser.
Ma se posso darti il mio parere, in questo caso la spesa probabilmente 
non vale l'impresa, in quanto è meglio a questo punto ristrutturare 
velocemente la pagina che tu hai realizzato con i frame, a una pagina 
realizzata unicamente con tabelle (o più finemente con div).
--
rob4you

Alessandro Pellizzari ha scritto:

Effettivamente la tua soluzione è una "furbata" :) ... a proposito dei 
casini che generano i frame penso che questo che ho incontrato è il 
primo :) .
Quanto prima seguirò il tuo consiglio, ed eliminerò i frame, ho già in 
mente il primo step che dovrebbe vedere una soluzione ibrida ... ma devo 
rivedere tutto ed ora non è il momento :-P
Grazie 1000

rob4you ha scritto:

La gestione ajax è interessante, ma come dici, forse, il gioco non vale 
la candela.
Ho comunque dato un rapido sguardo al tuo link, perché la cosa sembra 
interessante ... appena ho un po' di tempo approfondisco. :)
Grazie!