• User Attivo

    [AJAX] Modificare un DIV da un IFRAME

    Ciao a tutti, sto smanettando con Ajax e mi sono trovato di fronte a questo problema.

    Ho un form per il caricamento delle immagini che manda la richiesta in un iframe, vorrei che ad operazione avvenuta nell'iframe ci fosse un comando che modifichi un DIV della pagine che contiene l'Iframe stesso.

    Ho provato nella richiesta di cambio valore a fare così, ma la console errori mi dà "top is null".

    
    function richiestaAJAX_page(risultatoCampo,url){
    
    	var myRequest  = iniXMLHTTP();
    	var linkFinale = url;
    
    		myRequest.open("GET",linkFinale,true);
    		myRequest.onreadystatechange = rispostaAjax_page;
    		myRequest.send(null);
    
    function rispostaAjax_page(){
    
    	if(myRequest.readyState==4){
    
    		// Se la risposta è completa mostro le informazioni
    		if(myRequest.status==200){
    			risultato  = myRequest.responseText;
    			top.document.getElementById(risultatoCampo).innerHTML=risultato;
    
    			}
    	
    		}
    		// altrimenti immagine di attesa
    		else{
    			top.document.getElementById(risultatoCampo).innerHTML='errore!';
    		}
    
    	}else{
    			top.document.getElementById(risultatoCampo).innerHTML='Attendere per favore';
    	}
    
    }
    return false;
    }
    
    

    Qualche idea su come risolvere il problema? 🙂


  • User

    Se lo script ha sede nella pagina esterna all'iframe e la div ha sede in quest'ultimo, allora devi dare un name al frame ed inserire quello al posto di top.

    Se lo script ha sede nella pagina caricata all'interno dell'iframe e in quest'ultimo hai anche il div da modificate, allora non hai bisogno di usare top.

    Se lo script ha sede nella pagina caricata via iframe, ma il div è nella pagina principale, in questo caso ti serve usare il top.


  • User Attivo

    Ciao blancks (ma sei il blancks che conosco io? ;-)) dunque tra le tre possibilità mi sembra che sia la terza.

    La struttura è così:

    • pagina principale: con form per il caricamento immagini, iframe a cui fare il target del form e div da aggiornare

    • iframe: riceve i dati del form, fa tutte le operazione, viene stampato il codice dello script che deve aggiornare il div della pagina principale a fine operazioni


  • User

    Se sei lo stesso Raiken che conosco io allora si xD

    Se rientri nel terzo caso, prova ad usare 'parent' al posto di 'top' 😉


  • User Attivo

    Ahaha si si sono io 🙂

    Ho provato già anche con parent, ma come per top mi da Null.