Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31

Discussione: var a se stesso

  1. #1
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499

    var a se stesso

    Io ho un menu che carica in un div pagine utilizzando ajax. E' possibile passare una variabile anche allo stesso menu? Mi serve perchè quando clicco, il link premuto deve cambiare di stato. Ma utilizzando ajax, io non ricarico tutta la pagina, quindi non trovo il modo di far recuperare la variabile al menu...

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Nessun consiglio e' appropriato senza vedere il codice che usi.

    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

  3. #3
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Hai ragione credevo di averlo messo:
    Codice PHP:
    function caricaTesto(nomeFile) {

      
    // variabili di funzione
      
    var
        
    // assegnazione oggetto XMLHttpRequest
        
    ajax assegnaXMLHttpRequest(),
        
    // assegnazione elemento del documento
        
    elemento prendiElementoDaId("content"),
        
    // 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"nomeFiletrue);

        
    // 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;

    e il link del menu è
    Codice PHP:
    [url="page.php?menu=on"]text[/url
    cosi carico la pagina nel div...
    come faccio a recuperare la var menu dal blocco del menu?

    Spero sia più chiaro ora

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da semolino
    come faccio a recuperare la var menu dal blocco del menu?

    Spero sia più chiaro ora
    Perdona, sara' l'influenza... ma non vedo nessuna variabile menu utilizzata ed inoltre non e' chiaro cosa sia per te il "blocco del menu" :master:

    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

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Io ho un menu che carica in un div pagine utilizzando ajax.
    Ok questo è chiaro

    E' possibile passare una variabile anche allo stesso menu?
    :master:

    Mi serve perchè quando clicco, il link premuto deve cambiare di stato.
    Questo è pleonastico: ti serve quel "qualcosa" indefinito

    Ma utilizzando ajax, io non ricarico tutta la pagina
    Questo è ovvio :master:

    quindi non trovo il modo di far recuperare la variabile al menu
    :master:

    non è che puoi specificare il punto 2 e 4?
    Pietro

  6. #6
    a parte il fatto che viene chiamata una funzione 'caricaBox' ma viene mostrata solo 'caricaTesto'

    comunque credo che semolino voglia poter cambiare lo stile del link che e' stato cliccato

    E questo e' abbastanza facile, come sappiamo

    basta qualcosa del genere

    codice:
    onclick="return caricaBox(this.href, this)"
    e nella funzione

    codice:
    caricaBox(nomeFile, clickedLink)
    {
       clickedLink.className = "nome_classe"
       ...
    }
    Io direi che la vera difficolta' e' rimettere il vecchio stile all'ultimo link che e' stato selezionato.

    Bisognerebbe in qualche modo avere la lista di tutti i possibili link interessati. E solo semolino ci puo' dire se questa lista e' disponibile in qualche modo (sarebbe sufficiente ad esempio chiamare tutti i tag <a> interessati con lo stesso nome)

  7. #7
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Si scusate, caricaBox e Caricatesto fanno parte di due pagine diverse, ma ovviamente le uso accoppiate nel modo corretto...
    raven74 dicevi che il poblema sarebbe cambiare lo stato del link che non è più cliccato; le liste dei link sono in alcuni casi dinamiche e in altre fisse; sono tutte dentro ai tag <ul>.
    Si può formattare tutto <ul> come off e attribuire solo al singolo[*] cliccato il valore della classe?

    PS. il tab presente in questo sito (in alto sotto al menu), non è simile? io cambio i contenuti cliccando sui vari tab (sponsor, ICTv, Edit, ...) che cambiano di stato, no?

  8. #8
    Si può formattare tutto <ul> come off e attribuire solo al singolo[*] cliccato il valore della classe?
    Dovresti fare un ciclo for per tutti gli <il> dell'<ul> e settare a 'off' tutti tranne il selezionato. Quindi e' fattibile, ma non basta settare a 'off' il tag <ul>. Il ciclo sarebbe indispensabile.

    Per avere tutti gli elementi <il> di un <ul> devi fare

    mio_ul.getElementsBiTagName("IL");

    dove mio_ul e' ovviamente il tuo elemento ul

    PS. il tab presente in questo sito (in alto sotto al menu), non è simile?
    Il tab sopra non usa ajax per ricaricare il contenuto, ma ricarica l'intera pagina. Quindi lato server si evidenzia il tab corrispettivo

  9. #9
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Originariamente inviato da raven74
    Dovresti fare un ciclo for per tutti gli <il> dell'<ul> e settare a 'off' tutti tranne il selezionato. Quindi e' fattibile, ma non basta settare a 'off' il tag <ul>. Il ciclo sarebbe indispensabile.

    Per avere tutti gli elementi <il> di un <ul> devi fare

    mio_ul.getElementsBiTagName("IL");

    dove mio_ul e' ovviamente il tuo elemento ul
    il ciclo lo dovrei effettuare nella chiamata ajax? O meglio dove inserisco il ciclo nella funzione CaricaTesto?
    Ammettiamo di avere una struttura cosi
    codice:
    <ul id="nav">
    <li id="active">text2
    <li id="off">text2
    <li id="off">text2[/list]

  10. #10
    Nella funzione che chiami all'onclick (caricaTesto o caricaBox, deciditi)

    metti qualcosa del genere

    codice:
    mio_ul = document.getElementById("nav")
    el = mio_ul.getElementsBiTagName("IL");
    for (var i=0; i<el.length; i++)
    {
        var myLink = el[i].getElementsByTagName("a")[0];
        if(myLink.href == nomeFile)
        {
            el[i].href.style.className =  "stato_selezionato";
        }
        else
        {
            el[i].href.style.className =  "stato_deselezionato";
        }
    }
    Non e' elegantissimo ma dovrebbe funzionare

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 © 2026 vBulletin Solutions, Inc. All rights reserved.