Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/01/2011, 19:33
RikuAnsem
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 14 años, 4 meses
Puntos: 0
Pregunta No me retorna el valor si no uso alert

Hola a todos.

Esta es mi primera consulta en este foro (aun que he resuelto muchas de mis dudas en el mirando temas).

Hoy me está pasando algo muy raro.

Estoy haciendo un scripts para una página de animes online (para probar ajax y tal), lo que hace mi script es borrar comentarios de los usuarios.

El script iva bién, luego lo cambié por un código un poco mejor y me permitía más cosas.

Mi problema es que al hacer el return, según como lo haga no me devuelve nada, pero si justo antes de enviarlo, pongo un alert (con cualquier texto), lo envia O_O


Los códigos són estos:

El que envía la petición (el php va bién, y para comprovar que ha completado, hago un echo con "success", el archivo php lo carga en el otro código)
Código:
function eliminarComent(id){
	var answer = confirm ("Vas a borrar el comentario, ¿estás seguro?");
	if (answer){ //SI ACEPTA BORRARLO
	capa="info";
		var resul = getDataServer("","?comentborrar="+id,capa,"GET","mostrar");
		alert (resul);
		if (resul=="success"){
			document.getElementById(capa).innerHTML="El comentario se ha borrado exitosamente";
			totnewcom=document.getElementById("totcoments").innerHTML-1;
			document.getElementById("totcoments").innerHTML=totnewcom;
			document.getElementById("comdiv_"+id).style.visibility = "hidden";
			totalheight=document.getElementById("comdiv_"+id).style.height = 0;
		}
	}
}


EL QUE CREA EL OBJETO PARA AJAX:
Código:
function creaAjax(){
  var objetoAjax=false;
  try {
   /*Para navegadores distintos a internet explorer*/
   objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
   try {
     /*Para explorer*/
     objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
     } 
     catch (E) {
     objetoAjax = false;
   }
  }

  if (!objetoAjax && typeof XMLHttpRequest!='undefined') {
   objetoAjax = new XMLHttpRequest();
  }
  return objetoAjax;
}

El que recive las variables
Código:
function getDataServer (url,valores,capa,metodo,accion)
{
	if (url==""){ //SI NO SE ASIGNA URL, SE USARÁ LA DE DEFECTO
		url = "funciones/scripts/funcionesajax.php";
	} //SI NO SE ASIGNA URL, SE USARÁ LA DE DEFECTO
	
	if (metodo==""){ metodo="POST"; }
	var ajax=creaAjax();
	var capaContenedora = document.getElementById(capa);

	miestado=1;

	ajax.open (metodo, url + valores, true); //Se inicia el envio de info	
	
	
	ajax.onreadystatechange = function() {
		
		if (ajax.readyState==1) {
			document.getElementById(capa).innerHTML="Cargando...";
			
		}
		else if (ajax.readyState==4){
			if(ajax.status==200){
/*				//Esto era un intento para que funcionara mi "experimento"

				if (miestado==1 && ajax.responseText!=""){
					var resulta=ajax.responseText;
					miestado=0;
				}

				//Y este era porque solo quiero que imprima algunos scripts en las capas (dado que no siempre quiero que se imprima)
				if (accion=="mostrar"){  
					document.getElementById(capa).innerHTML=ajax.responseText;
				}	
*/
			}			
			else if(ajax.status==404){
				capaContenedora.innerHTML = "La direccion no existe :S\nPor favor, contacte con algún administrador.)";
			}
			else{
				capaContenedora.innerHTML = "Error: "+ajax.status+"\nPor favor, contacte con algún administrador.)";
			}
		}
	 }

	
	ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	ajax.send(valores);


	alert ("CON ESTO SI QUE FUNCIONA");

	return ajax.responseText;  //<-- esto es lo que no envia bién
}


Como pueden comprovar, mi error lo tengo justo en el último código, en la última línea antes de "}".

Gracias de antemano ^^

EDIT:
He estado provando, y el problema es que cuando hace return, si no haces el alert, puede pasar esto:
Si no haces el alert O Si haces un alert con el contenido del return antes de hacer el otro alert: VA MAL (no vuelve a la otra función).

Última edición por RikuAnsem; 06/01/2011 a las 20:34