ti mando una paginetta di esempio. E' fatta in asp, ma ho messo commenti e penso si possa adattare a php.

1) uso la libreria prototype-1.4.0.js recuperabile all'indirizzo:
http://prototype.conio.net/ con un aiuto qui:
http://www.fabryprog.it/from_sergiop...totype.js.html

2) nel client genero un numero casuale da 1 a 10.
Lo spedisco nel server con ajax
Lo sommo alla variabile di sessione
Restituisco al client la variabile di sessione

codice:
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
        //verifico se ho ricevuto un comando ajax
        string ajax_comando = this.Request.QueryString["ajax_comando"];
        if (ajax_comando == "1") proceduraAJAX1();
        
    }

    void proceduraAJAX1()
    {
        //recupero il numero ricevuto (da 1 a 10)
        string random = this.Request.Form["random"];
        
        //lo aggiungo alla variabile session random
        object o = this.Session["random"];
        if (o == null)
            this.Session.Add("random", int.Parse(random));
        else
            this.Session["random"] = (int)this.Session["random"] + int.Parse(random);


        string s = "Parametro random ricevuto = " + random + "
"
                + "variabile sessione = " + this.Session["random"];
        
        
        this.Response.Write(s);
        this.Response.End();
        
        
    }
    
    
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Pagina senza titolo</title>
    <link href="../stili/Styles.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="../js/prototype-1.4.0.js"></script>
<script language="javascript" type="text/javascript">
// <!CDATA[

function Button1_onclick() 
{
    //in questo esempio genero un numero random
    //lo mando al server e la sommo alla variabile
    //session random. Dopo di che la restituisco al client
    
    
    //url: ? == pagina corrente
    //ajax_comando=1 -> dice al server la procedura da seguire
    var url = "?ajax_comando=1";
    
    //formato variabile1=valore1&variabile2=valore2...
    var parametri = "random=" + random(1,10);
    
    var j = new Ajax.Request(url,
                            {
                                parameters:parametri,
                                //funzione richiamata alla ricezione della risposta
                                onComplete: showResponse
                                
                            }
                            );
                            
    function showResponse(r)
    {
        document.getElementById("div1").innerHTML = r.responseText;
    }                        
    
}

//restituisce numero casuale compreso tra kLo e iHi, compresi
function random(iLo, iHi)
{
	return Math.floor(iLo + (Math.random() * (iHi - iLo + 1)));
}
// ]]>
</script>
</head>
<body>
    <form id="form1" runat="server">
        Spedisco un numero random al server, lo sommo alla variabile di sessione e visualizzo la variabile di sessione nel client
        <div id="div1"></div>
    </form>
</body>
</html>