Visualizzazione dei risultati da 1 a 2 su 2

Discussione: problema con gli alert

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    27

    problema con gli alert

    Ciao, sto iniziando a studiare ajax e nel creare le prime applicazioni ho un problema con gli alert. Qui nell'esempio di cui vi allego il codice, carico nella mia pagina html un file di testo tramite XMLHttpRequest , ma ovviamente se il file non viene trovato faccio stampare "File non found". Il problema è che quando provo l'esempio ( con un nome del file non presente sul server) compare correttamente l'alert, ma quando schiaccio ok sull'alert questo ricompare, tutto ciò viene ripetuto per 5 volte e poi al quinto ok effettivamente l'alert si chiude. Non capisco perchè, vi allego il codice grazie

    <script>
    var myRequest = null;
    var elementodaGestire="";

    function CreateXmlHttpReq(handler) {
    var xmlhttp = null;
    try {
    xmlhttp = new XMLHttpRequest();
    } catch(e) {
    try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
    xmlhttp.onreadystatechange = handler;
    return xmlhttp;
    }

    function myHandler2() {
    if (myRequest.readyState == 4 && myRequest.status == 200) {
    e = document.getElementById(elementodaGestire);
    e.innerHTML = myRequest.responseText;

    }else{ alert("File Not found"); }
    }

    function esempio3(theId) {
    elementodaGestire=theId;
    var r = Math.random();
    myRequest = CreateXmlHttpReq(myHandler2);
    myRequest.open("GET","testo1.txt");
    myRequest.send(null);
    }
    </script>
    </head>
    <body>
    <form name="f1">
    Nome: <input type="input" name="nome">
    <input type="button" onClick="esempio3('cc3')" value="Visualizza cognome" />

    Risultato: <div id="cc3">div3</div>

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    l' errore e' in questa condizione:
    if (myRequest.readyState == 4 && myRequest.status == 200) {
    tu fai scattare l' alert sia quando non ha ancora finito (readyState diverso da 4)
    sia quando lo status non e' 200 (successo)

    spezzala almeno in
    codice:
    if (myRequest.readyState == 4){ 
      if(myRequest.status == 200) {
      ...successo
      }
      else ...alert
    }
    ciao

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.