Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881

    aiuto su script

    Ho bisogno di aiuto per questo scriptino figlio di ajax (posso dirvi anche chi è sua mamma ma rischio una censura)

    var voce
    function stateChanged() {
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
    if (nano == "£") {
    var t = xmlHttp.responseText.toString()
    voce = new Array(t)
    } else{
    document.getElementById(nano).innerHTML=xmlHttp.re sponseText
    }
    }
    }

    E' preso dal sito del w3c e l'ho modificato per fare in modo che l'xmlHttp.responseText venga messo dentro ad un oggetto che ha ID = nano (nano è una variabile pubblica) oppure che, se nano è uguale a £, vada a riempire una var di tipo array (voce) dichiarata fuori dalla funzione...

    ebbene: se gli faccio modificare l'innerHTML dell'oggetto nano funziona tranquillamente, nell'altro caso invece t viene valorizzata correttamente (se lo visualizzo con un alert vedo "a","b","c,"d"....) ma dentro all'array non sembra volerci andare... la Javascript Console del FF mi mostra l'errore "voce has no properties" in tutti i punti della pagina html in cui voglio fargli scrivere i valori degli item di voce con la scrittura
    document.write(voce[0]) .....

    il contenuto dell'xmlHTTP viene valorizzato quando lo chiamo sull'onload della pagina (quindi, presumo, prima che sie elaborato il resto della pagina dove ho i richiami agli item dell'array).... sbaglio io sicuramente ma non capisco dove....
    abbiate pazienza: sono un nerd sia di JS che di AJAX!
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2
    codice:
     var t = xmlHttp.responseText.toString()
    voce = new Array(t)
    Innanzi tutto: cosa contiene t?
    Esempio: se t contiene a,b,c,d,e allora:
    codice:
    voce = t.split(",");
    Ti devi chiedere: Cosa, nel contenuto di t, mi fa capire come sono separati gli elementi con i quali devo riempire l'array?

    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  3. #3
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    perfetto (il suggerimento che mi hai mandato e anche perfetto idiota io a non averci pensato, grazie)

    Ora l'array è pieno, però dove richiamo gli item dell'array mi restituisce sempre l'errore... è come se si riempisse dopo che è stata costruita tutta la pagina... eppure io "il riempimento" lo faccio sull'onload...
    temo mi manchi qualche cosa sul funzionamento di ajax, chi mi fa un po' di luce?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  4. #4
    Originariamente inviato da supermac
    perfetto (il suggerimento che mi hai mandato e anche perfetto idiota io a non averci pensato, grazie)

    Ora l'array è pieno, però dove richiamo gli item dell'array mi restituisce sempre l'errore... è come se si riempisse dopo che è stata costruita tutta la pagina... eppure io "il riempimento" lo faccio sull'onload...
    temo mi manchi qualche cosa sul funzionamento di ajax, chi mi fa un po' di luce?
    infatti ...
    e quando è che 'usi' i valori che dovrebbero essere nell'array?
    spara un po' di codice, che ci si guarda (un riassunto!)
    ciao
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  5. #5
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    vedi di seguito
    è più o meno il codice presente negli esempi del w3c tranne che ho aggiunto quel parametro per decidere se fargli mettere il risultato dentro ad un oggetto di ID noto oppure se depositare il risultato in un'array e usarlo poi dove mi serve.
    (in realtà ho in mente di includere tutto lo script che precede la definizione della var pagina in un file js che dovrà essere messo in testa ad una serie di file htm; la var pagina contiene l'url della pagina asp con annessi e connessi che determina poi il contenuto dell'xmlHTTP.responseText)


    <head>
    <script language="JavaScript" type="text/javascript">
    <!--//
    var xmlHttp, nano, voce, pagina

    function chiama(par,nano2){
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null){
    alert ("Browser does not support HTTP Request");
    return
    }
    var url=par;
    nano = nano2
    url=url+"&sid="+Math.random()
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
    }

    //qui confeziona il risultato e decide se mettere il risultato in un oggetto di cui è noto l'ID o se metterlo in un array
    function stateChanged() {
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
    if (nano == "£") {
    var t = xmlHttp.responseText.toString()
    voce = t.split(",")
    } else{
    document.getElementById(nano).innerHTML=xmlHttp.re sponseText
    }
    }
    }
    //questa serve a individuare il browser e l'oggetto xmlhttp più adatto
    function GetXmlHttpObject(handler)
    {
    var objXMLHttp=null
    try {
    objXMLHttp=new ActiveXObject("Msxml2.XMLHTTP")
    }
    catch(e) {

    try {
    objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
    }

    catch(f){
    objXMLHttp=new XMLHttpRequest()
    }
    }
    return objXMLHttp
    }


    //chiamo la funzione passandogli come parametro il nome della pag.corrente
    pagina = "maclang.asp?q="+location.href.substring(location. href.lastIndexOf("/")+1);
    chiama(pagina,"£");
    //-->
    </script>
    </head>


    <body >
    <script language=javascript>document.write(voce[0])</script>
    .....
    <script language=javascript>document.write(voce[1])</script>
    .....
    <script language=javascript>document.write(voce[2])</script>
    </body>
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  6. #6
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    uppo
    ...
    e poi chiederò anche a chi ne sa di narrarmi dei tempi di esecuzione degli script
    (cioè ad esempio lo <script src=pippo.js> viene eseguito nel punto in cui viene inserito o ha tempi di esecuzione diversi come gli include in asp?)
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da supermac
    uppo
    ...
    e poi chiederò anche a chi ne sa di narrarmi dei tempi di esecuzione degli script
    (cioè ad esempio lo <script src=pippo.js> viene eseguito nel punto in cui viene inserito o ha tempi di esecuzione diversi come gli include in asp?)
    Anche questo argomento c'azzecca nulla con il titolo cha hai dato alla discussione... urge una attenta (ri)lettura del regolamento

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    hai ragione br1, ammetto la mia colpevolezza
    però per il titolo non so cosa scegliere tra
    -[ajax] necessito di un tutor
    -[javascript] necessito di un tutor
    -[ajax e js] quesiti da parte di un nerd
    -[ajax e js] pessimismo e frustrazione
    ...

    il titolo che ho messo era una velata ricerca di comprensione e paziente supporto da parte di chi ne sa più di me (cioè tutti quelli che frequentano questi luoghi) con riferimento allo script che ho postato (script che può essere tradotto anche in "esperimenti e primi passi nella palude Ajax").
    Se puoi modificare il titolo (io non credo di poterlo fare, o si?) ti autorizzo a mettergli pure quello che ritieni più consono... e mi scuso ancora.


    Sulla questione script aggiungo, come indizio per chi vuole provare a sfangarmi, che ho chiesto con un alert qual'è il readystate appena entra nella funzione stateChanged e mi restituisce 1.
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  9. #9
    var t = xmlHttp.responseText.toString()
    voce = t.split(",")


    la prima linea serve a niente perchè xmlHttp.responseText se presente, sarà già una stringa e non ha bisogno del toString .... se non presente sarà nullo e null.toString da errore ... quindi serve proprio a niente



    if(!!xmlHttp.responseText) voce = xmlHttp.responseText.split(",");

    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    ok andr3a, corretto
    nel dubbio sulla natura di quel responseText l'avevo anche convertito toString inutilmente

    il problema del readystate però persiste... fisso a 1
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

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.