Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/01/2008, 13:49
nancy8120
 
Fecha de Ingreso: enero-2006
Mensajes: 233
Antigüedad: 18 años, 11 meses
Puntos: 2
error en la recepcion de datos

saludos,
estoy implementando un ejemplo que me dieron en el foro,
pero me sigue mandando error, segun veo es que no esta reciviendo los parametros de la pagina esterna, asi que si me pueden dar una ayudita ok les muestro el codigo


esta es mi pagina1.asp aqui tengo el el escrip y los lisbox
<script LANGUAGE="JavaScript" SRC="../include/funciones.js"></script>
<script>
//NO MOVER ESTE CODIGO INFERIOR
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
//NO MOVER EL CODIGO SUPERIOR

//PROCESO QUE INVOCARA EL METODO DE AJAX
function Cambia_IdVariant(destino,valor) {
if (!enProceso && http) {
var url = "pagina.asp?destino=" + destino + "&value=" + valor + "&guia="+ Math.random();;
http.open("GET", url, true);
http.onreadystatechange = GetData;
enProceso = true;
http.send(null);
}
}

function GetData(){
//proceso completado
if (http.readyState == 4) {
//sin error, se mandan datos al select
if (http.status == 200) {
//todo perfecto, escribiendolos
if (http.responseText.indexOf('invalid') == -1) {
//separamos el control de los datos
// results = http.responseText.split("|");
results = unescape(http.responseText.split("|"));
//en Results[0], estara el nombre del control que tendra los datos
//en Results[1], se encontraran todos los valores
document.getElementById(results[0]).innerHTML = results[1];
//Cerramos el proceso
enProceso = false;
}
}
//en caso de error
else{ alert("Error en la recepcion de datos")
enProceso = false;
}
}
}
</script>

y estos son los lisbox



<tr valign="top">
<td width="98" nowrap><strong>Codigo Fillingsysten:</strong></td>
<td width="261"><div align="left">
<select size="1" name="codigo_filli" id="fill" onChange="Cambia_IdVariant('idvariant',this.value) ">
<option value="">Seleccione</option>
!CODIGO_FILLI! <!--ya saben en este parte esta mi select para q se cargue el lisbos-->
</select></div></td>
</tr>

<tr valign="top">
<td width="98" nowrap><strong>ID Variant:</strong></td>
<td width="261"><div align="left">
<select size="1" name="idvariant" id="idvariant">


</select></div></td>
</tr>

y esta es mi pagina externa osea pagina.asp


<%Dim Conn
'ABRE CONEXION
categoria=request.QueryString("value")
response.write categoria
response.end



Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open CONNECTIONSTRING

'verifico que el querystring, no este vacio
if request.QueryString <>"" then
'tomo el valor del control, que contendra los datos
destino=request.QueryString("destino")
'tomo el valor de la categoria a buscar
categoria=request.QueryString("value")
'creo la consulta
strSQL = "SELECT CODIGO,DESCRIPCION,IDFILLINGSYSTEM FROM VARIANT where IDFILLINGSYSTEM="&categoria&" "
'ejecucion
Set rst = Conn.Execute(strSQL)
'inicializo respuesta en blanco
respuesta=""
if Err=0 then
if rst.EOF =false
'de aki hasta el ultimo dato de la subcategoria
Do While Not rst.EOF
'por primera ves, tomo el valor simple
if respuesta="" then
respuesta= "<option value="""&_
rst("CODIGO")&""""&_
strSelected&">"&_
rst("DESCRIPCION")&"</option>"
'en segundas vueltas, le anexo todos los valores que llegue a encontrar
else
respuesta = respuesta & "<option value=""" & rst("CODIGO") & _
""" "&strSelected&">"&_
rst("DESCRIPCION")&"</option>"
end if
'me muevo al siguiente registro
rst.MoveNext
Loop
'esta parte permitira al control de ajax separar mediante el simbolo "|";
'el control de los datos; en pocas palabras, esta parte es la importante
else
respuesta = "No hay SubCategorias"
end if
else
respuesta = "Error Procesando Datos, contacte al WebMaster"
end if
response.Write destino &"|"& respuesta
end if%>



ok, como veran lo q quiero es cargan un segundo lisbox a partir de un primero osea segun el value de primer lisbox,

gracias por sus comentarios