Per esperti di PHP: refreshing indesiderato del main

  • Due nuove obbligazioni Societe Generale, in Euro e in Dollaro USA

    Societe Generale porta sul segmento Bond-X (EuroTLX) di Borsa Italiana due obbligazioni, una in EUR e una in USD, a tasso fisso decrescente con durata massima di 15 anni e possibilità di rimborso anticipato annuale a discrezione dell’Emittente.

    Per continuare a leggere visita questo LINK
  • SONDAGGIO: Potrebbe interessarti una sezione "Trading Sportivo"?

    Ciao, ci piacerebbe sapere se potrebbe interessarti l'apetura di una nuova sezione dedicata unicamente al trading sportivo o betting exchange. Il tuo voto è importante perchè ci consente di capire se vale la pena pianificarla o no. Per favore esprimi il tuo voto, o No, nel seguente sondaggio: LINK.
    Puoi chiudere questo avviso premendo la X in alto a destra.

    Staff | FinanzaOnline

torre1

Un passo alla volta
Registrato
15/5/08
Messaggi
50.863
Punti reazioni
5.043
Premesso che conosco poco PHP e in generale la programmazione lato server. Non so neanche quanto sia OT rispetto alla sezione.

Sto facendo alcune prove su altervista di gestione database myslq usando php
Ho costruito una main page (main.php) un po' pesante da caricare contenente un iframe fr01 delegato a gestire il database con un file php (esempio b.php).

Il main contiene questo iframe <iframe id=fr01 name=fr01 src=""></iframe>

questa form

<form id=frm01 action="b.php" target="fr01" method="post">
<input type="text" name="par1" id="text">
<input type="submit" value="post">
</form>

questo link <a href="fr01.php?par1=xxx" target=fr01>a href</a>

e un po' di javascript

Ho provato tre modalità per passare i parametri all'iframe:

1) Con la form attivata sia manualmente sia da javascript con il metodo submit applicato alla form
2) Con il link
3) Modificando dinamicamente la proprietà src dell'iframe con codice javascript del tipo

var fn=function() {
var oFr=document.getElementById("fr01"),
s="b.php?par1=xxx";
oFr.src=s;
}

b.php è caricato nell'iframe in tutti e tre i casi, ma nella terza soluzione viene ricaricato anche il main (e in questo caso se l'attributo src dell'iframe è "" durante il refresh del main si perde il contenuto dell'iframe ).

Le domande sono:

1) Perchè nei primi due modi il main NON viene ricaricato, mentre nel terzo si ?
2) C'è modo nel terzo modo per evitare questo refresh, indesiderato ?

Su internet non riesco a trovare una soluzione. Il passaggio dei parametri avviene correttamente in tutti e tre i casi

Grazie in anticipo.
 
Premesso che conosco poco PHP e in generale la programmazione lato server. Non so neanche quanto sia OT rispetto alla sezione.

Sto facendo alcune prove su altervista di gestione database myslq usando php
Ho costruito una main page (main.php) un po' pesante da caricare contenente un iframe fr01 delegato a gestire il database con un file php (esempio b.php).

Il main contiene questo iframe <iframe id=fr01 name=fr01 src=""></iframe>

questa form

<form id=frm01 action="b.php" target="fr01" method="post">
<input type="text" name="par1" id="text">
<input type="submit" value="post">
</form>

questo link <a href="fr01.php?par1=xxx" target=fr01>a href</a>

e un po' di javascript

Ho provato tre modalità per passare i parametri all'iframe:

1) Con la form attivata sia manualmente sia da javascript con il metodo submit applicato alla form
2) Con il link
3) Modificando dinamicamente la proprietà src dell'iframe con codice javascript del tipo

var fn=function() {
var oFr=document.getElementById("fr01"),
s="b.php?par1=xxx";
oFr.src=s;
}

b.php è caricato nell'iframe in tutti e tre i casi, ma nella terza soluzione viene ricaricato anche il main (e in questo caso se l'attributo src dell'iframe è "" durante il refresh del main si perde il contenuto dell'iframe ).

Le domande sono:

1) Perchè nei primi due modi il main NON viene ricaricato, mentre nel terzo si ?
2) C'è modo nel terzo modo per evitare questo refresh, indesiderato ?

Su internet non riesco a trovare una soluzione. Il passaggio dei parametri avviene correttamente in tutti e tre i casi

Grazie in anticipo.

Difficile rispondere senza vedere il codice completo, ma come ipotesi mi viene da dire che nel terzo modo tu stia facendo ANCHE un POST della form (con il metodo submit?) che finisce invece sul MAIN (ricaricandoti quindi la pagina) oltre che cambiare l'attributo "src" del frame.

Per verificare questo puoi inserire del codice php come prime righe di MAIN tipo questo:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
print_r($_POST);
die();
}
?>

Per ovviare al caso in cui il "src" è vuoto puoi salvare i parametri in una sessione php in modo da renderli persistenti rispetto ad eventuali refresh della pagina, ed assegnarli direttamente al "src" del frame in fase di caricamento della stessa.
 
Premesso che conosco poco PHP e in generale la programmazione lato server. Non so neanche quanto sia OT rispetto alla sezione.

Sto facendo alcune prove su altervista di gestione database myslq usando php
Ho costruito una main page (main.php) un po' pesante da caricare contenente un iframe fr01 delegato a gestire il database con un file php (esempio b.php).

Il main contiene questo iframe <iframe id=fr01 name=fr01 src=""></iframe>

questa form

<form id=frm01 action="b.php" target="fr01" method="post">
<input type="text" name="par1" id="text">
<input type="submit" value="post">
</form>

questo link <a href="fr01.php?par1=xxx" target=fr01>a href</a>

e un po' di javascript

Ho provato tre modalità per passare i parametri all'iframe:

1) Con la form attivata sia manualmente sia da javascript con il metodo submit applicato alla form
2) Con il link
3) Modificando dinamicamente la proprietà src dell'iframe con codice javascript del tipo

var fn=function() {
var oFr=document.getElementById("fr01"),
s="b.php?par1=xxx";
oFr.src=s;
}

b.php è caricato nell'iframe in tutti e tre i casi, ma nella terza soluzione viene ricaricato anche il main (e in questo caso se l'attributo src dell'iframe è "" durante il refresh del main si perde il contenuto dell'iframe ).

Le domande sono:

1) Perchè nei primi due modi il main NON viene ricaricato, mentre nel terzo si ?
2) C'è modo nel terzo modo per evitare questo refresh, indesiderato ?

Su internet non riesco a trovare una soluzione. Il passaggio dei parametri avviene correttamente in tutti e tre i casi

Grazie in anticipo.

Ti avevo scritto una risposta che poi ho cancellato xchè mi sono reso conto che avevo scritto st.onzate :D

Ci riprovo :o

Credo che il problema che ravvisi con il terzo metodo abbia a che fare con quello che è spiegato qui: JavaScript: accedere al DOM dell’elemento iframe | Gabriele Romanato

Però non capisco una cosa.

Se il problema già lo risolvi addirittura in 2 modi diversi ...... perchè ti ostini a voler usare il terzo :wall: :D
 
Ti avevo scritto una risposta che poi ho cancellato xchè mi sono reso conto che avevo scritto st.onzate :D

Ci riprovo :o

Credo che il problema che ravvisi con il terzo metodo abbia a che fare con quello che è spiegato qui: JavaScript: accedere al DOM dell’elemento iframe | Gabriele Romanato

Però non capisco una cosa.

Se il problema già lo risolvi addirittura in 2 modi diversi ...... perchè ti ostini a voler usare il terzo :wall: :D

Parto dalla fine: premesso che so programmare soprattutto sul lato client, e che programmare non è la mia professione anche se mi serve (e mi piace) saperlo fare. E' che sono ancora in fase di apprendimento di PHP e cerco di capirne la logica: sapere come funzionano le cose mi serve per capire quale sia la soluzione migliore, che di solito è quella più affine alla logica della tecnologia che si usa

Non capisco con quale logica ricaricare il solo iframe debba per forza richiedere il refresh e quindi il reload di tutta la main page, per main pesanti da caricare diventa un problema ricaricare ogni volta
IFrame e main page sono sullo stesso dominio (sto lavorando direttamente su file residenti su altervista), non ho avuto problemi ad accedere con javascript dalla main al dom dell'iframe e viceversa come pure richiamare da una parte codice javascript residente dall'altra

Questo articolo quindi non credo mi dia la risposta, ma è comunque interessante perchè pensavo che una volta caricato si accedesse all'iframe come se tutto fosse in locale, non mi era chiaro che la cosa non fosse così scontata. Grazie :)
 
Parto dalla fine: premesso che so programmare soprattutto sul lato client, e che programmare non è la mia professione anche se mi serve (e mi piace) saperlo fare. E' che sono ancora in fase di apprendimento di PHP e cerco di capirne la logica: sapere come funzionano le cose mi serve per capire quale sia la soluzione migliore, che di solito è quella più affine alla logica della tecnologia che si usa

Non capisco con quale logica ricaricare il solo iframe debba per forza richiedere il refresh e quindi il reload di tutta la main page, per main pesanti da caricare diventa un problema ricaricare ogni volta
IFrame e main page sono sullo stesso dominio (sto lavorando direttamente su file residenti su altervista), non ho avuto problemi ad accedere con javascript dalla main al dom dell'iframe e viceversa come pure richiamare da una parte codice javascript residente dall'altra

Questo articolo quindi non credo mi dia la risposta, ma è comunque interessante perchè pensavo che una volta caricato si accedesse all'iframe come se tutto fosse in locale, non mi era chiaro che la cosa non fosse così scontata. Grazie :)

Prego ;)

Anche io non sono un esperto ..... nel senso che non è il mio mestiere.
In + non ci sbatto la testa :D da un pò .... e sono parecchio arrugginito. :'(

Ciò premesso ....... credo invece che l'articolo qualcosa c'entri ;)

In ogni caso per aggiornare parti di una pag già caricata piuttosto che usare gli iframe che se non ricordo male hanno problemi di compatibilità con i vari browser (anche se questo magari a te non interessa) in genere si usa ajax (che consente appunto di effettuare interrogazioni i background) per poi usare il javascript + DOM per inserire il risultato della query nella pagina.
Con goole trovi migliaia di esempi ;)
 
Prego ;)

Anche io non sono un esperto ..... nel senso che non è il mio mestiere.
In + non ci sbatto la testa :D da un pò .... e sono parecchio arrugginito. :'(

Ciò premesso ....... credo invece che l'articolo qualcosa c'entri ;)

In ogni caso per aggiornare parti di una pag già caricata piuttosto che usare gli iframe che se non ricordo male hanno problemi di compatibilità con i vari browser (anche se questo magari a te non interessa) in genere si usa ajax (che consente appunto di effettuare interrogazioni i background) per poi usare il javascript + DOM per inserire il risultato della query nella pagina.
Con goole trovi migliaia di esempi ;)

Per fortuna non ho problemi di cross browser, sono applicazioni che servono solo a me, lavoro con firefox. Gli iframe li lo uso per caricarci i file php (piccolini e velocemente caricabili) che gestiscono il database usando invece una main (pesante) come interfaccia utente statica
Ajax so che esiste ma non l'ho mai usato e purtroppo non ho molto tempo per approfondirlo. Su javascript e Dom non ho alcun problema, è la parte che conosco meglio.

Per adesso i primi due sistemi descritti nel primo post mi risolvono il problema, e con quelli per adesso andrei avanti, ma mi piacerebbe capire perchè nel terzo caso c'è quel refresh perchè credo contribuirebbe a farmi capire meglio la logica generale che sta dietro a php

Dimenticavo, riesco a modificare a piacimento il dom dell'iframe dalla main, ma non mi serve perchè sono pagine php, non html, e come tali (php) mi servono

:)
 
Dando un'occhiata a wikipedia (Ajax), in effetti una ulteriore soluzione potrebbe essere proprio Ajax ....... :bow: :bow: :bow:
 
Indietro