Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problema Ajax

  1. #1

    Problema Ajax

    Ragazzi non riesco a capire vermanete quale possa essere il problema... Ho riscritto una funzione di esempio della guida di ajax:

    <script language="javascript" type="text/javascript">
    function mycaricaTesto(newText){

    var ajax = new XMLHttpRequest(), usaLink = true;
    if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;
    ajax.open("get", newText, true);
    // rimozione dell'header "connection" come "keep alive"
    ajax.setRequestHeader("connection", "close");
    // verifica della risposta da parte del server
    if(statusText[ajax.status] === "OK")
    // operazione avvenuta con successo
    document.getElementById("contenuto-dinamico").innerHTML = ajax.responeText;
    ajax.send(null);
    }
    return usaLink;
    }

    </script>

    ma non funziona e non so proprio perchè...
    Ecco la funzione originale

    <script type="text/javascript"><!--//

    // funzione di caricamento testo,
    // accetta una stringa contenente
    // il nome di un file da leggere
    function caricaTesto(nomeFile) {

    // variabili di funzione
    var
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    elemento = prendiElementoDaId("contenuto-dinamico"),
    // risultato booleano di funzione
    usaLink = true;

    // se l'oggetto XMLHttpRequest non è nullo
    if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;

    // 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
    elemento.innerHTML = ajax.responseText;
    else {
    // errore di caricamento
    elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.
    ";
    elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
    }
    }
    }

    // invio richiesta
    ajax.send(null);
    }

    return usaLink;
    }

    //--></script>

    Il problema è che vengo reindirizzato al link non attreverso ajax.responseText, ma solo seguendo il link.
    Questa la pagina di manuale dove c'è l'esempio
    http://javascript.html.it/guide/lezi...gere-un-testo/

    Vorrei capire dove commetto l'errore. Grazie a chi mi risponderà

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma lo script originale (il secondo quello di html.it) funziona? Perché non usi quello? Se non va posta l'errore. Eseguire modifiche implica conoscere bene il linguaggio js.


    P.S. Nel caso posta il link alla pagina online.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Originariamente inviato da cavicchiandrea
    Ma lo script originale (il secondo quello di html.it) funziona? Perché non usi quello? Se non va posta l'errore. Eseguire modifiche implica conoscere bene il linguaggio js.


    P.S. Nel caso posta il link alla pagina online.
    Lo script originale funziona, dopo un po di fatica ho capito il mio errore, ma approfitto cmq della tua disponibilità(ancora grazie).
    Ti posto la pagina completa, non ho capito perchè lo script restituisce usaLink e dove viene usato il suo valore booleano, e poi perchè ci vuole il return quando richiamo la funzione in onclick? cosi funziona, io pensavo potesse anchenon andare, ma non funziona piu...
    Ti ho segnalato in rosso i miei dubbi

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" >
    <head>
    <title>HTML.it | AJAX | Primo esempio</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <meta name="description" content="HTML.it | Guida ajax, request testuale" />
    <meta name="keywords" content="guida, ajax, remote scripting, esempio, esempi" />
    <meta name="author" content="Andrea Giammarchi per HTML.IT" />
    <script type="text/javascript" src="utility.js"></script>
    <script type="text/javascript">
    function mycaricaTesto(newText){

    var ajax = assegnaXMLHttpRequest(), usaLink = true;
    if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;
    ajax.open("get", newText, true);
    // rimozione dell'header "connection" come "keep alive"
    ajax.setRequestHeader("connection", "close");
    // verifica della risposta da parte del server
    ajax.onreadystatechange = function() {
    // verifica dello stato
    if(ajax.readyState == 4) {
    // verifica della risposta da parte del server
    if(ajax.status == 200)
    // operazione avvenuta con successo
    document.getElementById('contenuto-dinamico').innerHTML = ajax.responseText;

    }
    }
    ajax.send(null);
    }
    return usaLink;
    }

    </script>

    <style type="text/css" media="all">
    body {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 9pt;
    background: #FFF;
    color: #000;
    }
    h1 {
    font-size: 12pt;
    border-bottom: 1px solid silver;
    color: #009;
    }
    </style>
    </head>
    <body>
    <div>
    <h1>Request Testuale</h1>

    <div id="contenuto-dinamico">
    Questo testo è stato inserito all'interno di un elemento di tipo div
    con id univoco: contenuto-dinamico .

    Per cambiare questo contenuto è sufficiente clickare su

    <!-- è importante fare caso alla costruzione di questo link:
    permette di leggere il testo anche senza AJAX -->
    questo link.

    </div>

    </div>
    </body>
    </html>

  4. #4
    Doppio

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.