Hola de nuevo... Quizá este tema lo relacionen con alguno que ya haya posteado anteriormente, pero es conforme va evolucionando mi aplicación, voy preguntando. De antemano pido disculpas a los moderadores, por si creen que estoy repitiendo temas.
Ahora tengo un problema "multiplataforma", y lo detallo para darme a entender mejor:
Tengo una aplicación en asp que me genera una serie de cadenas desde una consulta sql server. Está consulta me trae n cadenas que proceso en una función y obtengo un resultado por cada una de las cadenas obtenidas.
Ahora bien, lo que me está haciendo ruido, es que esas cadenas debo enviarlas mediante ajax a una página en dónde tengo la función que las procesa y el resultado lo voy a imprimir en una serie de DIV´s en mi página principal. Lo que sucede es que al generar las cadenas, las pongo en una variable "nombre_carpeta" (la cual puede traer n cadenas), y trato de enviarlas, pero al retornar el resultado, descubro que sólo me toma la primer cadena generada. Anexo el código:
Código:
Set Conn = Server.CreateObject("ADODB.Connection")
Set Ors = Server.CreateObject("ADODB.Recordset")
Set Ins = Server.CreateObject("ADODB.Recordset")
Conn.open = "DSN=cnx;UID=javier;PWD=manzano;DATABASE=EDUC06K"
Ors.open "Select... From.. Where...", Conn
Do While not Ors.eof
'nombre_carpeta = Ors("Archivo")
nm = Ors("Archivo")
nombre_carpeta = nombre_carpeta & nm & "," & "<br />"
nm = ""
cantidad = Ors("Cantidad")
r = r + cantidad
%>
<form action='post'>
<input type='hidden' name='nombre_carpeta' id='nombre_carpeta' value="<%=nombre_carpeta%>" />
</form>
<%
Ors.movenext
Loop
Ors.Close
set fs=nothing
for i=0 to (r-1)
response.Write("<div id='campoMensaje"&i&"' align='center'></div>")
Next
y envio con la siguiente función:
Código:
<script>
verificaUsuario()
</script>
Código:
<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];
for(var cont=0; cont<=9; cont++)
{
document.getElementById("campoMensaje"+cont.toString()).innerHTML = results[cont];
}
enProceso = false;
}
}
}
}
function verificaUsuario()
{
if (!enProceso && http)
{
var valor = escape(document.getElementById("nombre_carpeta").value);
var url = "consulta.asp?nombre_carpeta="+ valor;
//top.document.write(valor);
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>
¿Alguién tiene una ídea de cómo puedo hacerlo?