Hola amigos,
estoy teniendo unos problemas programanado una función javascript, os pongo a continuación el código y os digo lo que me pasa.
Cita: function leerBD(p){
var url = "ajax.php";
var params = "p="+p;
var http = new XMLHttpRequest();
http.open("POST", url, true);
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
alert(p);
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
var registros=http.responseText;
alert(registros);
alert("arriba de if");
if(p==1){
alert("en if");
/*Declaraciones*/
var h3 = document.createElement("h3");
var h2 = document.createElement("h2");
var p = document.createElement("p");
var enlace = document.getElementById("enlacesub1");
p.innerHTML=registros;
var subbox = document.getElementById("subbox1");
subbox.appendChild(p);
h3.innerHTML = "Experimento 1";
enlace.parentNode.insertBefore(h3,enlace); //insertamos antes del enlace
enlace.parentNode.inserteBefore(p,enlace);
}
}
http.send(params);
}
}
Entonces, el problema está en que se pierde el valor de la variable p cuando entra en
Cita: http.onreadystatechange = function()
. En mi código html le paso un 1, y el valor no se pierde hasta donde he dicho.
¿Por qué puede ser? ¿Qué puedo hacer?
Gracias!