Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508

    Refresh parziale di una pagina

    Ho una pagina con 3 textarea e dovrei fare in modo che 2 di queste si aggiornino automaticamente ogni tot secondi prendendo i dati dal servletcontext, come posso fare?
    Riesco a farlo, ma solo facendo un refresh della pagina intera, io vorrei che il refresh riguardasse solo le 2 textarea.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Direi che ajax dovrebbe fare al caso tuo http://javascript.html.it (sezione ajax)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Continuo ad avere dei problemi, fondamentalmente non capisco cosa devo fare.
    Qui sotto posto il codice della pagina.
    In pratica ho bisogno che le 2 textarea di nome "descrizione" e "commentocliente" facciano un refresh leggendo da un bean nel context 2 campi che vengono scritti da 2 servlet relative a 2 form presenti su un'altra pagina. La scrittura sul bean avviene regolarmente.
    Non voglio che mi scriviate il codice, ma almeno datemi un'idea su come muovermi perché ci sto provando ma non ne vengo a capo.

    Codice PHP:
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        
    pageEncoding="ISO-8859-1"%>
    <!
    DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@
    page import="java.util.*" %>
    <%@
    page import="bean.PropostaRicettaBean" %>
    <
    html>
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <
    title>Valuta Proposta</title>
    </
    head>
    <%     
    String ruolo = (String)session.getAttribute("ruolo"); 
        
    application getServletContext();
        
    PropostaRicettaBean ricetta = (PropostaRicettaBean)application.getAttribute("ricetta");
        List 
    listadattesa = (List)application.getAttribute("listadattesa");
        
    int lista listadattesa.size() - 1;
        
    String abbandonata = (String)application.getAttribute("abbandonata_proposta");
    %>

    <
    script type="text/javascript">
    <!--
    //
    // funzione per prendere un elemento con id univoco
        
    function prendiElementoDaId(id_elemento) {
            var 
    elemento;
            if(
    document.getElementById)
                
    elemento document.getElementById(id_elemento);
            else
                
    elemento document.all[id_elemento];
            return 
    elemento;
        };
        

    //-->
    </script>
    <body>
    <%if (session.getAttribute("username") == null) {    %>
        <jsp:forward page ="homepage.jsp"/> 
        <%}
        else {
            if (abbandonata.equals("si")) {
                application.setAttribute("abbandonata_proposta", "no");
                 String redirectURL = "hpchef.jsp";
                   response.sendRedirect(redirectURL);
        } else {%>
    <center>
        
        <h2>Valuta Proposta</h2>
        <%if (lista <= 0) {%>Non ci sono clienti in attesa.<%} else if (lista == 1) { %>
        

    C'è <%=lista %> cliente in attesa</p><%} else { %>
        

    Ci sono <%=lista %> clienti in attesa</p><%} %>
        <table>
            <tr>
                <td rowspan="2">
                    <table border="1">
                        <tr height="20">
                            <td>Ricetta Proposta</td>
                        </tr>
                        <tr>
                            <td><textarea name="descrizione" readonly rows="17" cols="30"></textarea></td>
                        </tr>
                    </table>
                </td>
                <td width="5">
                </td>
                <td>
                    <table border="1">
                        <tr height="20">
                            <td>Commenti del Cliente</td>
                        </tr>
                        <tr>
                            <td><textarea name="commentocliente" readonly rows="5" cols="30"></textarea></td>
                        </tr>
                    </table>
                    


                    <form name="formcommentochef" action="InvioCommentoChef" method="get">
                    <table border="1">
                        <tr height="20">
                            <td>Scrivi qui i tuoi commenti</td>
                        </tr>
                        <tr>
                            <td><textarea name="commentochef" rows="5" cols="30"></textarea></td>
                        </tr>
                    </table>
                    <input type="submit" value="Invia Commenti" name="submit">
                    </form>
                </td>
                <td>
                    <form name="accettaricetta" action="ApprovaRicetta" method="post">
                        <input type="submit" value="Approva la Ricetta" name="submit">
                    </form>
                    


                    <form name="rifiutaricetta" action="RifiutaRicetta" method="post">
                        <input type="submit" value=" Rifiuta la Ricetta" name="submit">
                    </form>
                    


                    <table border="1">
                        <tr>
                            <td>Tipo di Portata</td>
                            <td><select name="tipoportata" id="tipoportata">
                                    <option value="">-Da selezionare-</option> 
                                    <option value="primo">Primo</option>
                                    <option value="secondo">Secondo</option>
                                    <option value="dolce">Dolce</option>
                                    </select> 
                              </td>
                          </tr>
                          <tr>
                              <td>Ingredienti Principale</td>
                              <td><input type="text" name="ingrediente1"><input type="text" name="ingrediente2"><input type="text" name="ingrediente3">
                                </td>
                           </tr>
                     </table>
                     <input type="submit" value="Cerca" name="submit">
             </tr>
        </table>
    [url="ricettario.jsp"]Ricettario[/url]



    [url="hp<%=ruolo %>.jsp"]Home Page[/url]
    </center>
    <%}
    } %>
    </body>
    </html> 

  4. #4

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Ho letto la discussione suggerita ed ho cercato altre cose in giro.
    Penso di aver fatto qualche passo avanti, ma ancora non funziona.
    Adesso sto cercando di far aggiornare una delle textarea attivando la funzione con l'utilizzo dell'evento onMouseOver sulla textarea stessa.
    Non capisco perché non viene inserito nella textarea il testo contenuto nel file prova.txt.
    Qual è il problema?
    Propongo il codice che ho scritto, ho tolto le parti superflue per non appesantire la lettura, le funzioni assegnaXMLHttpRequest() e prendiElementoDaId(id_elemento) sono quelle presenti nella guida ajax qui su html.it e messi in un file ajaxutils.js
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <
    html>
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <
    title>Valuta Proposta</title>
    </
    head>

    <
    script type="text/javascript" src="utility.js"></script>
    <script type="text/javascript">
    <!--//
        function aggiornaCommento() {
            // variabili di funzione
              var
                // assegnazione oggetto XMLHttpRequest
                ajax = assegnaXMLHttpRequest(),
                commentoEl = prendiElementoDaId("commentocliente");
                nomefile = "prova.txt";

            // se l'oggetto XMLHttpRequest non è nullo
            if(ajax) {

                // impostazione richiesta asincrona in GET del file specificato
                ajax.open("get", nomefile, true);

                // rimozione dell'header "connection" come "keep alive"
                ajax.setRequestHeader("connection", "close");

                // impostazione controllo e stato della richiesta
                ajax.onreadystatechange = function() {

                    // verifica dello stato
                    if(ajax.readyState === readyState.COMPLETATO) {
                        // verifica della risposta da parte del server
                        if(statusText[ajax.status] === "OK")
                            // operazione avvenuta con successo
                            commentoEl.innerHTML = ajax.responseText;
                        else {
                            // errore di caricamento
                            commentoEl.innerHTML = "Impossibile effettuare l'operazione richiesta.
    ";
                            commentoEl.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
                        }
                    }
                }
                // invio richiesta
                ajax.send(null);
            }
        }
    //-->
    </script>
    <body>
    <center>
        <table border="1">
            <tr height="20">
                <td>Commenti del Cliente</td>
            </tr>
            <tr>
                <td><textarea id="commentocliente" readonly rows="5" cols="30" onMouseOver="aggiornaCommento()"></textarea></td>
            </tr>
        </table>
    </center>
    </body>
    </html> 
    Edit: se può servire ricordo che la pagina di cui sopra è una JSP

  6. #6
    ah,gli scope....

    metti la definizione (NON l'assegnamento) delle variabili fuori dalla funzione

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Ho fatto così
    codice:
    ...
    var commentoEl, nomefile, ajax;
    		
    	function aggiornaCommento() {
        		// assegnazione oggetto XMLHttpRequest
        		ajax = assegnaXMLHttpRequest(),
    			commentoEl = prendiElementoDaId("commentocliente");
    			nomefile = "prova.txt";
    
    ... Il resto tutto uguale
    Niente da fare.

  8. #8
    giusto per...
    hai usato un , al posto di ; alla fine di ajax = assegnaXMLHttpRequest(),

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Azz... hai ragione...

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Ok, riesco a fare l'aggiornamento.
    Per adesso uso onMouseMove per attivare la funzione, ma vorrei che si attivasse da sola ogni tot secondi, non a seguito del movimento del mouse o altri eventi.
    Come posso fare?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.