• User Attivo

    Javascript + PHP + Ajax

    Salve a tutti!

    Allora, ho un sito in php. Nella homepage ci sono dei box che posso chiudere da una freccina e riaprire (collapse).
    Ora, io devo fare che se ho per esempio il box "Agenda" aperto, devo fare che, quando clicco sulla freccina il box si chiuda (hide) e mi salvi un cookie con valore 0. Se riclicco sulla freccina il box si riapre e il valore del cookie diventa 1. Ovviamente, però, la pagina non deve ricaricarsi ogni volta che clicco sulla freccina ma deve funzionare con ajax.
    Ho fatto questa funzione (dev'essere parametrizzata perché ho vari box) e funziona su Firefox ma non su IE, credo perché non riesce ad aggiornare il valore della variabile.
    Qualcuno sa dirmi dov'è l'errore o ha un altro codice funzionante?
    Grazie.

    Intanto vi posto quello che ho fatto io:

    Index:
    [PHP]if (!isset($_COOKIE[box_Agenda]))
    {setcookie ("box_Agenda", '1', time()+3600000, "/");}
    header("location:index.php");[/PHP]

    Funzione:

    function collapseBox(myBox)
    {
     alert (myBox);
     var BoxColl=$(myBox);
     alert ('BoxColl: '+BoxColl);
     oXmlHttp = zXmlHttp.createRequest();//istanzio l'oggetto xmlHHTPRequest dalla libreria inclusa Zxml
     if(oXmlHttp)
     { //se l'oggetto è stato istanziato
        
      oXmlHttp.open("get","/funzioni/collapseBox.php?myBox="+myBox, true); //apro la richiesta passando metodo, url + parameti, modalità asincrona
      
      oXmlHttp.onreadystatechange = function()
      { //controllo lo stato di avanzamento derlla richiesta e della risposta
      
       if (oXmlHttp.readyState == 4)
       { //completata 
        if (oXmlHttp.status==200)
        { // HTTP response --> OK
         alert (oXmlHttp.responseText);
         if (oXmlHttp.responseText==1)//assegno al contenuto interno del div formattato in HTML la risposta della pagina server
         {BoxColl.show();}
         else
         {BoxColl.hide();}
          
        }
       }
      }
      // invio richiesta
      oXmlHttp.send(null);
     }
    }
    

    [PHP] echo '<a href="javascript:;" onClick="collapseBox('box_Agenda');"><img src="immagini/freccia.gif" border="0" /></a>';

    echo '<div id="box_Agenda" style="display:';

                        if ((isset($_COOKIE[box_Agenda])) && ($_COOKIE[box_Agenda]=='1'))
                        {echo 'block;';}
                        else
                        {echo 'none;';}
                        echo '">';[/PHP]
    

    Pagina collapseBox.php

    [PHP]$myBox = $_GET[myBox];
    if (!isset($myColl[$myBox]))
    {$myColl[$myBox]=$_COOKIE[myBox];}
    // se il cookie è settato a 1, cioè il box è aperto, setto il cookie a 0 (chiuso)
    if ($_COOKIE[$myBox]=='1')
    {
    $myColl[$myBox] = 0;
    setcookie ($myBox, $myColl[$myBox], time()+3600000, "/");
    echo $myColl[$myBox];
    }
    // se il cookie è settato a 0, cioè il box è chiuso, setto il cookie a 1 (aperto)
    else if ($_COOKIE[$myBox]=='0')
    {
    $myColl[$myBox] = 1;
    setcookie ($myBox, $myColl[$myBox], time()+3600000, "/");
    echo $myColl[$myBox];
    }[/PHP]