Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    393

    [ajax] Cookie non ricaricando la pagina

    Ho usato una funzione ajax per non ricaricare la pagina intera ma solo un div (mi includo varie minipagine).
    Il problema è che in questo modo non riesco a usare i cookie.
    E' un problema di mia incapacità? C'è un modo per aggirare questo problema?

  2. #2
    con "NON RIESCO" cosa intendi...spiegati meglio...

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    393
    Vuol dire che setto il cookie

    setcookie ( $cookie_name,"impostato",time()+10000,"/");

    ma mi dà messaggio di errore header in quanto i cookie andrebbero impostati a inizio pagina, invece a me serve impostarli al momento del caricamento in ajax della prima sottopagina

  4. #4
    quindi desumo tu stia cercando di impostare i cookie lato server?

    dunque...l'errore "inizio pagina":
    devi impostare i cookie prima di qualsiasi output verso il client.

    ma se stai usando ajax perche non utilizzare javascript per settare i tuoi cookie?

    codice:
    function setCookie(c_name,value,expiredays)
    {
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
    }
    http://www.w3schools.com/JS/js_cookies.asp

    cmq...puoi postare il codice della pagina che chiami con Ajax?


  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    393
    Ah non c'avevo pensato...

    In pratica basta che metto la function nella pagina principale e metto onclick sul tag a e richiamo la funzione in questo modo per esempio?

    onclick="setCookie(<? echo $cookie_name ?>, 1, 1);"

    In realtà sto provando ma non sembra funzionare...

  6. #6
    non così...mi sa che stai mischiando le cose

    dunque...
    che funzione usi in ajax ?
    e il codice della pagina che richiami?

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    393
    uso queste funzioni:
    Codice PHP:
    <script type="text/javascript">
    var 
    loadedobjects=""
    var rootdomain="http://"+window.location.hostname

    function ajaxpage(urlcontainerid){
    var 
    page_request false
    if (window.XMLHttpRequest// if Mozilla, Safari etc
    page_request = new XMLHttpRequest()
    else if (
    window.ActiveXObject){ // if IE
    try {
    page_request = new ActiveXObject("Msxml2.XMLHTTP")

    catch (
    e){
    try{
    page_request = new ActiveXObject("Microsoft.XMLHTTP")
    }
    catch (
    e){}
    }
    }
    else
    return 
    false
    page_request
    .onreadystatechange=function(){
    loadpage(page_requestcontainerid)
    }
    page_request.open('GET'urltrue)
    page_request.send(null)
    }

    function 
    loadpage(page_requestcontainerid){
    if (
    page_request.readyState == && (page_request.status==200 || window.location.href.indexOf("http")==-1))
    document.getElementById(containerid).innerHTML=page_request.responseText
    }

    function 
    loadobjs(){
    if (!
    document.getElementById)
    return
    for (
    i=0i<arguments.lengthi++){
    var 
    file=arguments[i]
    var 
    fileref=""
    if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
    if (file.indexOf(".js")!=-1){ //If object is a js file
    fileref=document.createElement('script')
    fileref.setAttribute("type","text/javascript");
    fileref.setAttribute("src"file);
    }
    else if (
    file.indexOf(".css")!=-1){ //If object is a css file
    fileref=document.createElement("link")
    fileref.setAttribute("rel""stylesheet");
    fileref.setAttribute("type""text/css");
    fileref.setAttribute("href"file);
    }
    }
    if (
    fileref!=""){
    document.getElementsByTagName("head").item(0).appendChild(fileref)
    loadedobjects+=file+" " //Remember this object as being already added to page
    }
    }
    }
    </script> 
    e poi la richiamo con:

    Codice PHP:
     <a href="javascript:ajaxpage('prova2.php?id=1', 'leftcolumn');"

  8. #8
    se vuoi farlo in ajvascript:
    Codice PHP:
    function loadpage(page_requestcontainerid) {
        if (
    page_request.readyState == && (page_request.status == 200 || window.location.href.indexOf("http") == -1)){
            
    document.getElementById(containerid).innerHTML page_request.responseText
            setCookie
    ('nomeCoockie','valore_cookie',360000)
        }        
    }

    function 
    setCookie(c_name,value,expiredays)
    {
        var 
    exdate=new Date();
        
    exdate.setDate(exdate.getDate()+expiredays);
        
    document.cookie=c_name"=" +escape(value)+
        ((
    expiredays==null) ? "" ";expires="+exdate.toGMTString());

    se invece hai bisogno di settare i cookie nella pagina prova2.php il setCookie (funzione php) va messo prima di qualasi ouput.


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.