Ver Mensaje Individual
  #8 (permalink)  
Antiguo 08/06/2010, 16:36
Avatar de JavierMMM
JavierMMM
 
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: ¿Cómo enviar un array mediante ajax?


No funciona

este es el codigo que tengo en principal.asp

Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Prueba Ajax</title>

<script language="javascript" type="text/javascript">
function handleHttpResponse() {
    if (http.readyState == 4) {
       if (http.status == 200) {
          if (http.responseText.indexOf('invalid') == -1) {
             // Armamos un array, usando la coma para separar elementos
             results = http.responseText.split(",");
             document.getElementById("campoMensaje").innerHTML = results[0];
             enProceso = false;
          }
       }
    }
}

function verificaUsuario() 
{
    if (!enProceso && http) 
	{
		elemento = 'arreg[]';
		frm = document.formulario;
		valor = new Array();
		for (var i = 0, total = frm[elemento].length; i < total; i++)
		{
			valor[valor.length] = escape(frm[elemento][i].value);
		}
		
		var url = "consulta.asp?nombre_carpeta="+ valor.join(",");
		http.open("GET", url, true);
		http.onreadystatechange = handleHttpResponse;
		enProceso = true;
		http.send(null);
	}
}

function getHTTPObject() {
    var xmlhttp;
    /*@cc_on
    @if (@_jscript_version >= 5)
       try {
          xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
          try {
             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (E) { xmlhttp = false; }
       }
    @else
    xmlhttp = false;
    @end @*/
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
       try {
          xmlhttp = new XMLHttpRequest();
       } catch (e) { xmlhttp = false; }
    }
    return xmlhttp;
}

var enProceso = false; // lo usamos para ver si hay un proceso activo
var http = getHTTPObject(); // Creamos el objeto XMLHttpRequest

</script>
</head>

<body>
<%
  	Set Conn = Server.CreateObject("ADODB.Connection")
	Set Ors = Server.CreateObject("ADODB.Recordset")
	Conn.open = "conexion"
	Ors.open "SELECT TOP 1 A.Id, A.Archivo FROM C_MATERIAL A LEFT JOIN C_CURSOS B ON (A.id = B.id) WHERE (YEAR(A.fechainicio) >= 2009) AND A.Id NOT IN (Select Id_Archivo From X_Respaldo) GROUP BY A.Id, Archivo ORDER BY Archivo", Conn
%><form action="post" name="formulario"><%
	Do While not Ors.eof
		nombre_carpeta = Ors("Archivo")
        Redim arreg(10000)
		for i=0 to Ors.eof
			arreg(i) = nombre_carpeta
		Next
		%>
        <input type="hidden" name="arreg[]" id="arreg[]" value="<%=arreg(i)%>">
        <!--<INPUT type="Button" value="Verificar si existe" onclick="verificaUsuario();">-->
		<%
		Ors.movenext
	Loop
	Ors.Close
	set fs=nothing

%>
</form>
<div id="campoMensaje"></div>
</body>
</html>
y esto en consulta.asp

Código:
<%
' me fijo si viene algun valor en el querystring, si no viene nada, no hago nada
if request.querystring("nombre_carpeta") <> "" then
   	nombre_carpeta = request.querystring("nombre_carpeta") & "<br />"
	response.Write(nombre_carpeta) & "<br />"
else
	response.Write("error")
end if
%>
Al final me regresa ¨error¨.... al parecer no esoy enviando nada....


Pregunta ante una duda que me surge... en la página de consulta, ¿debo de dejarla de esa manera, o hay alguna manera especial de recibir el vector [que supongo que así debe de ser]?

Última edición por JavierMMM; 08/06/2010 a las 17:45