Visualizzazione risultati 1 fino 26 di 26

Discussione: ricaricare solo parte della pagina

  1. #1
    Guest

    Predefinito ricaricare solo parte della pagina

    ho creato una pagina senza frame. Dato che molte parti restano sempre le stesse mi chiedevo se era possibile, cliccando un pulsante, far cambiare un solo <div> della pagina che contiene del testo con un altro <div> simile ma con testo diverso. Io devo usare solo jsp, javascript, html.
    Grazie

  2. #2
    L'avatar di powser
    powser non è connesso Moderatore
    Data registrazione
    29-12-2003
    Residenza
    Ragusa
    Messaggi
    2,917

    Predefinito

    Mi spiace ma Non è possibile fare ricaricare parte di una pagina!!!
    "I have something to say, it's better to burn out than to fade away..." Victor Kruger/The Kurgan

    My Site

    La risposta alla tua domanda, la trovi su http://forum.altervista.org basta fare una ricerca!

  3. #3
    Guest

    Predefinito

    immaginavo...
    Io avevo pensato di usare uno script javascript simile a quello usato per far visualizzare uno slideshow (spero si dica cosi. intendevo una foto dopo l'altra), ma non avendo ancora provato avevo un po' di speranza

  4. #4
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Sì che si può.
    Il testo che cambia lo metti dentro ad uno "span":
    Codice HTML:
    <span id="TestoCambia">Qui scrivi il testo iniziale</span>
    Poi con il bottone chiami una funzione:
    Codice HTML:
    <input type="button" value="Clicca" onClick="CambiaTesto()">
    Con Javascript crei la funzione:
    Codice HTML:
    <script language="Javascript" type="text/javascript">
    function CambiaTesto() {
    TestoCambia.innerHTML="Qui scrivi il nuovo testo";
    }
    </script>
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  5. #5
    Guest

    Talking

    Sì, ma così modifichi il testo dinamicamente, non ricarichi una parte della pagina!

  6. #6
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Ma se leggi la richiesta fatta...
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  7. #7
    Guest

    Predefinito

    ho provato ad usare lo script. Funziona. Avrei un altro problemino, io uso jsp e questo script mi servirebbe per cambiare il testo di un <div> a seconda della pagina in cui sono.Quindi io ho fatto:

    <span id="TestoCambia">Qui scrivi il testo iniziale</span>
    <input type="button" value="Clicca" onClick="CambiaTesto(paginanuova)">

    Codice HTML:
    <script language="Javascript" type="text/javascript">
    function CambiaTesto(page) {
    TestoCambia.innerHTML='<%@ import file="dir"'+ page + '%>';
    }
    </script>

    non mi funziona tanto bene...
    In più io dovrei avere 3,4 <div> da cambiare uno dopo l'altro...

    Un'altra cosa se importo un file xml in una pagina html o jsp e do degli stili ai tag, firefox mi tiene conto degli stili mentre ie no? c'è un modo per riparare a questo?
    Grazie ancora

  8. #8
    L'avatar di powser
    powser non è connesso Moderatore
    Data registrazione
    29-12-2003
    Residenza
    Ragusa
    Messaggi
    2,917

    Predefinito

    non mi sembra che altervista supporti jsp!
    "I have something to say, it's better to burn out than to fade away..." Victor Kruger/The Kurgan

    My Site

    La risposta alla tua domanda, la trovi su http://forum.altervista.org basta fare una ricerca!

  9. #9
    Guest

    Predefinito

    la mia domanda è generale, sto facendo un progetto per l'università e mi servivano degli aiutini :winkOLD:

  10. #10
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da sql
    In più io dovrei avere 3,4 <div> da cambiare uno dopo l'altro...
    Passi un parametro in più.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  11. #11
    Guest

    Arrow

    Citazione Originalmente inviato da powser
    non mi sembra che altervista supporti jsp!
    Basta leggere qui: Cosa offre Altervista?

    Non vedo le Java Server Pages...

  12. #12
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Evidentemente non deve farlo funzionare qui su AV

    sql:
    Per quanto riguarda questo:
    TestoCambia.innerHTML='<%@ import file="dir"'+ page + '%>';
    NON è possibile, perché quello che vuoi scrivere è codice JSP, dunque codice che viene interpretato SOLO lato server, e invece, con la soluzione che è stata proposta (l'unica comunque per caricare contenuto dinamicamente in un DIV) ti permette di caricare SOLO contenuto HTML/Javascript (insomma DHTML).

    Visto che a te serve una nuova richiesta http al server l'unica soluzione è un IFRAME, non c'è storia.

    Aggiungo:
    sono sicuro che puoi risolvere comunque caricando tutti i contenuti che vuoi far apparire nel DIV in una botta sola, lato server, usando codice JSP. Per es. ti importi TUTTI i file in vari DIV (div0, div1, div2...) e poi una volta sul client mostri (sempre col metodo suggerito, innerHTML) il contenuto del div che ha il contenuto desiderato, tipo:

    Codice HTML:
    <script language="Javascript">
    function mostraInDiv(indice){
    document.getElementById("divMostra").innerHTML = document.getElementById("div"+indice).innerHTML;
    }
    </script>
    
    <div id="divMostra"></div>
    
    <a href="javascript:mostraInDiv(0)">Mostra primo contenuto</a><br>
    <a href="javascript:mostraInDiv(1)">Mostra secondo contenuto</a><br>
    <a href="javascript:mostraInDiv(2)">Mostra terzo contenuto</a>
    
    <div id="div0"><%@ include file="contenuto0.txt"%></div>
    <div id="div1"><%@ include file="contenuto1.txt"%></div>
    <div id="div2"><%@ include file="contenuto2.txt"%></div>
    Non ho testato ma dovrebbe fungere o quantomeno darti un'idea del da farsi nella JSP.
    Ultima modifica di heracleum : 07-09-2005 alle ore 15.00.09
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  13. #13
    Guest

    Predefinito

    gentilissimo :winkOLD:

  14. #14
    Guest

    Predefinito

    Quoto Heracleum: potresti mettere queste informazioni in un bell'How-To... :-)

  15. #15
    Guest

    Predefinito

    Esiste un'altra soluzione, si chiama AJAX. La pagina manda richieste al server ed aggiorna la pagina senza ricaricarla; googlemaps e googlemail usano questo tipo di tecnologia.

    Per alcuni esempi prova: http://www.backbase.com e clicca su ajax demos. Purtroppo in questo caso non funziona su Safari :(

    bye,
    Marco

  16. #16
    Guest

    Question

    Citazione Originalmente inviato da loziosecchi
    Esiste un'altra soluzione, si chiama AJAX. La pagina manda richieste al server ed aggiorna la pagina senza ricaricarla; googlemaps e googlemail usano questo tipo di tecnologia.
    Ho un piccolo dubbio: funziona su AV?

  17. #17
    Guest

    Predefinito

    Citazione Originalmente inviato da Syst3mCrash3r
    Ho un piccolo dubbio: funziona su AV?
    Sinceramente non te lo so dire, anche perchè è una tecnologia che per il momento non voglio approfondire, visto che è troppo browser dipendente (ho già dato con i css ;)), ma se si basa su script lato server penso di sì...

    Credo però che non sia un problema visto che il progetto non va fatto su altervista ma su un server che probabilmente sarà tomcat o resin (jrun lo escluderei, parlando di università...)...

    Ho indicato questa tecnologia perchè leggendo il post mi è sorto un dubbio... visto che si tratta di un esame universitario, non credo sia suff usare uno sgamo nascondendo pezzi di pagina e mostrandoli on the fly... si tratta di ricaricare i dati ... boh, forse il mio ormai lontano passato universitario mi ha fatto diventare paranoico :winkOLD: :winkOLD: :winkOLD:
    Ultima modifica di loziosecchi : 09-09-2005 alle ore 11.39.36

  18. #18
    Guest

    Predefinito

    non è proprio un esame è una tesi. :eyes: Devo cercare di trovare la via migliore evitando di ricaricare cose inutili e che deve essere compatibile con quasi tutti i browser...già.

    Altra cosa:
    ho dichiarato una array

    <%
    String[] page_name;
    page_name = new String[items_pages[0]];
    page_name[0] = "page01.xml";
    %>

    poi devo usare la variabile page_name[0] per includere la pagina corrispondente:

    <jsp:include page="dir/<%@ out.print(page_name[0]); %>" flush="false" />

    non mi funziona credo proprio di aver sbagliato qualcosa. :sadOLD:

  19. #19
    Guest

    Predefinito

    si, l'asp non è supportato su av. :D

  20. #20
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    wrestlingforum:
    come detto numerose volte sopra, stiamo dando una mano a sql su pagine che non risiedono su AV, secondo, si tratta di JSP.

    sql:
    certo, il problema è il metodo di include che hai usato.
    il jsp:include è MOLTO diverso da l'include file (che ti avevo appositamente indicato nell'esempio).
    1) jsp:include : esegue completamente sul server la pagina all'url indicato, poi il RISULTATO html viene usato per essere incluso nella pagina jsp dove hai fatto la jsp:include, oltretutto deve essere appunto una pagina .jsp indipendente.
    2) include file : invece prende il contenuto testuale (senza interpretare nulla nel momento dell'inclusione) e lo mette nel punto dove l'hai richiamato.. ovvero l'include classico, semplice. Se il file conteneva anche codice jsp questo verrà eseguito SOLO assieme alla pagina che lo include.

    Ad ogni modo la riflessione di loziosecchi è logica, e mi fa pensare che la soluzione è troppo DHTML per una web-application j2ee.
    sql, la recente tendenza è ricaricare sempre tutta la pagina, anche per la completa accessibilità. La vecchia tendenza a risparmiare sugli elementi della pagina (menu, footer, header..) che portava ad utilizzare i frames a questo scopo, è ormai abbandonata. Quindi secondo me ti conviene ricaricare tutto man mano e via, senza trucchetti ed eccessive pre-preparazione di contenuti..
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  21. #21
    Guest

    Predefinito

    grazie per l'aiuto.
    Anch'io sono daccordo su quello che dici, ma il mio relatore mi ha chiesto la seconda via cioè quella che vi ho richiesto.
    Proporrò tutte e due le possibilità e poi vedremo quello che mi dirà.

    Grazie ancora

  22. #22
    Guest

    Predefinito

    ultima cosa, qual è l'equivalente jsp dell'azione in php

    <?
    $file = "page01.xml";
    include("dir/$file");
    ?>

    Grazie

  23. #23
    Guest

    Predefinito

    io ho trovato questo codice su IoProgrammo di Luglio/Agosto:
    Prendilo così com'è... io non so niente... :) E' un codice Javascript (anche se userò la syntax-highlight di php): non sono esperto ;)

    Aggiornare senza refresh del browser

    Con questo semplice esempio mostriamo come sia possibile, utilizzando l’oggetto XMLHttpRequest, realizzare delle pagine che aggiornano la loro interfaccia senza richiedere il refresh del browser.
    Lo script che segue rende possibile realizzare una pagina che mostra una serie di slide, prelevate su richiesta dal server, e le visualizza senza ricaricare la pagina.
    Per provare l’esempio è necessario pubblicare su un server web lo script, la pagina di prova e le slides
    Codice PHP:
    /**
    * Funzione che istanzia un oggetto XMLHttpRequest usando un meccanismo cross browser.
    *
    * @return restituisce un'istanza di XMLHttpRequest oppure il valore false in caso
    * di errori.
    */

    function getXMLHttpRequestInstance() {

    var
    xmlhttp;

    // Prova il metodo Microsoft usando la versione più recente:
    try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (
    e) {

    try {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (
    E) {
    xmlhttp = false;
    }
    }

    // Se non è stato possibile istanziare l'oggetto forse siamo
    // su Mozilla/FireFox o su un altro browser compatibile:
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
    xmlhttp = new XMLHttpRequest();
    } catch (
    e) {
    xmlhttp = false;
    }
    }

    // Restituisce infine l'oggetto:
    return xmlhttp;
    }

    /**
    * Funzione che sostituisce il contenuto HTML di un nodo della pagina.
    *
    * @param nodeId ID del nodo
    * @param html codice HTML da sostituire a quello del nodo
    */
    function updateContent(nodeId, html) {
    var
    node = document.getElementById(nodeId);
    if(
    null == node) {
    alert("[ERRORE] L'elemento " + nodeId + " non esiste");
    return;
    }
    node.innerHTML = html;
    node.style.visibility = "visible";
    }

    /**
    * Richiede al web server il contenuto di una slide (testo o HTML) in maniera asincrona.
    * @param nodeId ID dell'elemento della pagina che conterrà la slide
    * @param url URL della slide (deve essere sullo stesso server per motivi di sicurezza)
    */
    function showSlide(nodeId, url) {

    var
    xmlhttp = getXMLHttpRequestInstance();
    if(!
    xmlhttp) {
    alert("Il browser non supporta l'oggetto XMLHttpRequest");
    return
    false;
    }

    xmlhttp.open("GET", url,true);
    xmlhttp.onreadystatechange=function() {
    if (
    xmlhttp.readyState==4) {
    if (
    xmlhttp.status==200) {
    updateContent(nodeId, xmlhttp.responseText);
    } else if (
    xmlhttp.status==404) {
    alert("[ERRORE] l'URL "+url+"non esiste!");
    } else {
    alert("[ERRORE] errore non gestito (" + xmlhttp.status + ")");
    }
    }
    }

    xmlhttp.send(null);
    }
    ciao ciao :P

  24. #24
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Citazione Originalmente inviato da sql
    ultima cosa, qual è l'equivalente jsp dell'azione in php

    <?
    $file = "page01.xml";
    include("dir/$file");
    ?>
    Come già indicato il metodo di include file per JSP (equivalente comunque a quello che hai indicato in php) è:
    Codice:
    <%@ include file="dir/page01.xml"%>
    Tu dici, ok ma io voglio una variabile "file", eh... visto che include è una "direttiva" non è possibile (che io sappia, e non mi è mai servito) utilizzare variabili String al posto del nome del file da inserire.
    Se trovi il modo però fammi un fischio, mi hai incuriosito! :winkOLD:
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  25. #25
    Guest

    Predefinito

    ...sempre qua a rompere
    Io vorrei dichiarare delle variabili e ho fatto cosi':

    <%!
    int items_pages = 4; // pages item
    String item_name = new String("nome oggetto"); // name item

    String[] page_name;
    page_name = new String[items_pages];

    page_name[0] = "page01.xml";
    %>

    a questo punto mi da errore, credo che sia nella dichiarazione dell'array di stringhe. Io volevo fare un array di stringhe di lunghezza 4 come da variabile.
    Ultima modifica di sql : 12-09-2005 alle ore 11.13.37

  26. #26
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Ti dà errore perché stai "cazzeggiando" in una parte dello script che vuole SOLO dichiarazioni! cioè nel blocco <%! .. %> che è appunto solo per dichiarazioni (String pippo="valore";) e non per istruzioni o assegnazioni (tipo: page_name[0] = "page01.xml";), per capirci, è come nel .java di una classe la zona FUORI da ogni metodo, dove uno dichiara -di solito in alto- solo variabili e al massimo (molto raro) esegue istruzioni in blocchi static{} (se non ti risultano i blocchi static, ignora).
    Capito? no? nella pratica per correggere dovresti scrivere:
    Codice:
    <%!
    int items_pages = 4; // pages item
    String item_name = new String("nome oggetto"); // name item
    
    String[] page_name = new String[items_pages];
    //fine dichiarazioni
    %>
    
    <%
    //assegnazioni in blocco scriptlet
    page_name[0] = "page01.xml";
    
    //... e tutto il resto..
    %>
    Ultima modifica di heracleum : 12-09-2005 alle ore 12.52.09
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •