hola,
el asunto: hago un json en php q tengo q pasar para q se actualize un grid de datos en javascript. esto lo hago usando cookies pero cuando envio los datos no me actualiza la informacion, no se me actualiza la cookie q envio.
Código PHP:
$date2 = $_POST['date2'];
if (isset($_POST['date2'])){
$date2 = "'".$_POST['date2']."'";
setcookie("date2", time() - 3600);
setcookie("date2",$_POST['date2']);
}
esto lo recojo en el javascript
Código:
store = new GeoExt.data.FeatureStore({
layer: vecLayer,
proxy: new GeoExt.data.ProtocolProxy({
protocol: new OpenLayers.Protocol.HTTP({
url: "consulta3.php?date1="+ReadCookie('date1')+"&date2="+ReadCookie('date2')+"&especies="+encodeURI(ReadCookie('especies')),
format: new OpenLayers.Format.GeoJSON()
})
no se me destruyen las cookies q le digo q se borren.
otra cosa los datos q envio desde el formulario para hacer la consulta en PHP lo hago desde un script ajax para q no se me recargue la pagina, ¿quizas deberia indicarle algo en este script respecto a la actualizacion de las cookies? como tendria q hacer.
Código:
<script type="text/javascript">
function enviarDatos(){
var formulario = document.getElementById("formulario");
var datos = new FormData(formulario);
probadate1=document.getElementById('date1');
proba_date1=probadate1.value;
probadate2=document.getElementById('date2');
proba_date2=probadate2.value;
probachooser=document.getElementById('especies');
// completar la seguiente linea para obtener los values seleccionados en "selector"
var txt='';
var i;
var count = 0;
for (i=0; i<probachooser.options.length; i++) {
if (probachooser.options[i].selected) {
if (count==0)
txt+= "'"+probachooser.options[i].value+"'";
else
txt+= "#'"+probachooser.options[i].value+"'";
}
count++;
}
//hace la comparacion de las dos fechas
compareDates('datechooser','date1','date2');
url_proba='date1='+proba_date1+'&date2='+proba_date2+'&especies='+txt;
xhr(url_proba);
}
var xmlhttp;
function xhr(datos){ //funcion para crear las peticiones de XMLHttpResquest
// Generalmente sacada de páginas que usan un método para IE6 o anteriores,
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = procesarRespuesta; //Ojo sin parentesis
xmlhttp.open("POST", "consulta2.php", true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", 3);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(datos);
}
function procesarRespuesta(){
if(xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
//recarga el grid al hacer la peticion. de salida esta a false para que no lo muestre.
store.load();
}
}
}
</script>
la linea store.load(); carga la informacion del store q puse mas arriba.
cada vez q ejecuto el formulario me hace bien el POST, pero en el GET me sigue cargando el primero pq no se borran las cookies.