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?
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?
con "NON RIESCO" cosa intendi...spiegati meglio...![]()
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
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?
http://www.w3schools.com/JS/js_cookies.aspcodice: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()); }
cmq...puoi postare il codice della pagina che chiami con Ajax?
![]()
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...
non così...mi sa che stai mischiando le cose![]()
![]()
dunque...
che funzione usi in ajax ?
e il codice della pagina che richiami?
uso queste funzioni:
e poi la richiamo con:Codice PHP:
<script type="text/javascript">
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
function ajaxpage(url, containerid){
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_request, containerid)
}
page_request.open('GET', url, true)
page_request.send(null)
}
function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (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=0; i<arguments.length; i++){
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>
Codice PHP:
<a href="javascript:ajaxpage('prova2.php?id=1', 'leftcolumn');">
se vuoi farlo in ajvascript:
se invece hai bisogno di settare i cookie nella pagina prova2.php il setCookie (funzione php) va messo prima di qualasi ouput.Codice PHP:
function loadpage(page_request, containerid) {
if (page_request.readyState == 4 && (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());
}
![]()