Retroceder   Foros del Web > Programación para sitios web > AJAX

Respuesta
 
Herramientas Desplegado
Antiguo 12-nov-2006, 15:43   #1 (permalink)
KarenFerreira tiene algunos puntos positivos de karma
 
Avatar de KarenFerreira
 
Fecha de Ingreso: abril-2005
Ubicación: Bucaramanga, Colombia
Mensajes: 83
Enviar un mensaje por MSN a KarenFerreira Enviar un mensaje por Yahoo  a KarenFerreira
Pregunta Una duda sobre varios llamados

Hola,

Bien, pues estoy empezando a usar ajax, y me asalta una duda, he visto que para llamadas simultáneas se debe instanciar un array de objetos xmlhttprequest, pero no creo haber entendido bien. Lo que yo estoy haciendo es poner un formulario en la página que valida los datos ingresados por el usuario, si estan correctos, cambia los textbox por etiquetas div y activa otro formulario en la parte inferior de la página, pero cuando voy a enviar los datos de ese formulario, me aparece un error, y no me devuelve nada... eso es por no haber creado el array?
__________________
'Esto va a salir mal de todos modos, asi que no vale la pena estresarse por eso.' Tony Kakko.
KarenFerreira está desconectado   Responder Citando
Antiguo 12-nov-2006, 17:26   #2 (permalink)
MaBoRaK llegará a ser famoso muy prontoMaBoRaK llegará a ser famoso muy pronto
 
Avatar de MaBoRaK
 
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 1.781
Enviar un mensaje por MSN a MaBoRaK
loading..............


pueden muchas razones, menos la que nombras.
porque no pegas el codigo?



connection closed.
__________________
maborak@maborak.com
http://www.maborak.com
Maborak technologies
MaBoRaK está desconectado   Responder Citando
Antiguo 13-nov-2006, 08:55   #3 (permalink)
KarenFerreira tiene algunos puntos positivos de karma
 
Avatar de KarenFerreira
 
Fecha de Ingreso: abril-2005
Ubicación: Bucaramanga, Colombia
Mensajes: 83
Enviar un mensaje por MSN a KarenFerreira Enviar un mensaje por Yahoo  a KarenFerreira
Triste

Bueno, descubrí que no es por el array, como no hago llamadas simultáneas no lo necesito, pero ahora me apareció otro problema, resulta que tengo el siguiente código en html y asp:

Código HTML:
                sql_suscripciones = "SELECT * FROM suscripcion"
                Set rs_suscripciones = Server.CreateObject("ADODB.Recordset")
                rs_suscripciones.ActiveConnection = MM_news_STRING
                rs_suscripciones.Source = sql_suscripciones
                rs_suscripciones.CursorType = 1
                rs_suscripciones.CursorLocation = 2
                rs_suscripciones.LockType = 1
                rs_suscripciones.Open()
<select name="suscripciones" class="tb5" id="suscripciones" onChange="activacomplemento();">
                <option value="0" selected>Seleccione una</option>
            <%    
                rs_suscripciones.movenext            
                do while not rs_suscripciones.eof
           %>
                <option value="<%=rs_suscripciones("id_suscripcion")%>"><%=rs_suscripciones("nombre")%></option>
            <%            
                    varredim = cint(rs_suscripciones("id_suscripcion"))+1
                    redim preserve descripciones(varredim) 
                    descripciones(varredim-1) = rs_suscripciones("descripcion")
                    rs_suscripciones.movenext
                loop
            %>    
            </select>

Lo que hago es mostrar al usuario los tipos de suscripciones disponibles:
1 - Demostracion
2 - Instantánea y única
3 - Por número de sesiones
4 - Por periodo de tiempo
5 - Dominical

Cuando selecciono una opcion llamo a la función activacomplemento(), que despliega otro select para escoger el número de sesiones, en caso tal que la opción seleccionada sea la 3, o el número de meses que el usuario quiere que dure la suscripción en caso de ser seleccionadas las opciones 4 o 5. Además, le debe mostrar al usuario una descripción de la suscripción seleccionada.

Esta es la función activacomplemento()

Código HTML:
function activacomplemento()
{
    if(document.getElementById("suscripciones").value == 3)
    {
        document.getElementById("complemento").innerHTML = "Número de consultas desadas:";
        document.getElementById("consultas").style.display = "";
        document.getElementById("consultas").disabled = false;
        document.getElementById("meses").style.display = "none";
        document.getElementById("meses").disabled = true;
    }
    else if(document.getElementById("suscripciones").value == 4 || document.getElementById("suscripciones").value == 5)
    {
        document.getElementById("complemento").innerHTML = "Número de meses que durará la suscripción:";
        document.getElementById("meses").style.display = "";
        document.getElementById("meses").disabled = false;
        document.getElementById("consultas").style.display = "none";
        document.getElementById("consultas").disabled = true;
    }
    else
    {
        document.getElementById("complemento").innerHTML = "";
        document.getElementById("meses").style.display = "none";
        document.getElementById("meses").disabled = true;
        document.getElementById("consultas").style.display = "none";
        document.getElementById("consultas").disabled = true;
    }
    
    var id_suscripcion = document.getElementById("suscripciones").value;
    alert(id_suscripcion);
    if (!enProceso && http) {
       var url = "descripcion.asp?id_suscripcion="+id_suscripcion;
       alert(url);
       http.open("GET", url, true);
       alert(http.readyState);
       http.onreadystatechange = handleHttpResponse;
       enProceso = true;
       http.send(null);
    }
}
Para mostrar la descripción hago una llamada al script descripcion.asp, que me devuelve dos parámetros, el número de funcion que debe manejar el resultado, y el resultado pertinente dentro de una misma cadena, pero separados por comas.

2,resultadodelaconsulta

La funcion handleHttpResponse es la siguiente

Código HTML:
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;
             alert(results);
              enProceso = false;
             http.close;
             manejaresultados(results);
          }
       }
    }
}

function getHTTPObject() {
 if(navigator.appName == 'Microsoft Internet Explorer') {
  http = new ActiveXObject('Microsoft.XMLHTTP');
 } else {
  http = new XMLHttpRequest();
 }
 return http;
}
var enProceso = false; 
var http = getHTTPObject(); 

function manejaresultados(results)
{
    results1 = results;
    temp = results1.split(",");
    if(temp[0] == 1)
     {formulario1(results1);}
    if(temp[0] == 2)
     {formulario2(results1);}
}

function formulario2(results)
{
    results1 = results.split(",");
    alert (results1);
    document.getElementById("descripcion").innerHTML = results1[1];
}
En este caso particular uso la funcion formulario2, y funciona perfecta, excepto cuando selecciono la opcion 4 o 5. En IE me muestra un error de javascript que dice:

Cita:
Línea : 10
Car : 11
Error : System error : -1072896748
Codigo : 0
url : http://localhost/enewspaper/suscripcion.asp
pero en firefox no me dice nada, todo sale perfecto, alguna sugerencia en cuanto al motivo que hace que la cosa no funcione como deberia en IE?
__________________
'Esto va a salir mal de todos modos, asi que no vale la pena estresarse por eso.' Tony Kakko.
KarenFerreira está desconectado   Responder Citando
Antiguo 13-nov-2006, 14:52   #4 (permalink)
MaBoRaK llegará a ser famoso muy prontoMaBoRaK llegará a ser famoso muy pronto
 
Avatar de MaBoRaK
 
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 1.781
Enviar un mensaje por MSN a MaBoRaK
loading...........



donde te marca error?

if (http.responseText.indexOf('invalid') == -1) {
// Armamos un array, usando la coma para separar elementos
results = http.responseText;
alert(results);
enProceso = false;
http.close;
manejaresultados(results);
}

antes o despues de:
results = http.responseText;
alert(results);


si es, despues. de eso

results1 = results.split(",");
alert (results1);
document.getElementById("descripcion").innerHTML = results1[1];

segura que existe results1[1]?


connection closed.


connection closed.
__________________
maborak@maborak.com
http://www.maborak.com
Maborak technologies
MaBoRaK está desconectado   Responder Citando
Antiguo 13-nov-2006, 16:15   #5 (permalink)
KarenFerreira tiene algunos puntos positivos de karma
 
Avatar de KarenFerreira
 
Fecha de Ingreso: abril-2005
Ubicación: Bucaramanga, Colombia
Mensajes: 83
Enviar un mensaje por MSN a KarenFerreira Enviar un mensaje por Yahoo  a KarenFerreira
Retomemos... la cosa esta en que terminé cambiando el metodo de get a post porque leyendo y leyendo en Internet, encontré que el método get suele ser problemático a veces para usar AJAX. Ahora tengo otro problema...

Yo trabajo con asp, pero resulta, que cuando voy a querer enviar por el método post los datos me sale un error en la linea que menos me lo hubiera esperado...

Código HTML:
var url = "descripcion.asp";
var parametros ='id_suscripcion='+id_suscripcion;
        http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');// ---> Aquí me sale el error, y dice "error desconocido"        
       http.open("POST", url, true);
       http.send(parametros);
       http.onreadystatechange = function()
    {
        if (http.readyState==4)
        {
            results = http.responseText
        }
    }
No se porque, llegue a pensar que es porque el archivo descripcion.asp tiene algunas cabeceras para evitar la caché, pero se las quité y aún así sigue sin funcionar, tendrá algo que ver con la configuración del IIS?

no se si le estoy enviando mal las cabeceras, o es porque e
__________________
'Esto va a salir mal de todos modos, asi que no vale la pena estresarse por eso.' Tony Kakko.
KarenFerreira está desconectado   Responder Citando
Antiguo 13-nov-2006, 17:05   #6 (permalink)
KarenFerreira tiene algunos puntos positivos de karma
 
Avatar de KarenFerreira
 
Fecha de Ingreso: abril-2005
Ubicación: Bucaramanga, Colombia
Mensajes: 83
Enviar un mensaje por MSN a KarenFerreira Enviar un mensaje por Yahoo  a KarenFerreira
Ya pude solucionarlo!!, es que yo soy como medio lenteja, pero bueno, lo importante es que como estaba usando el mismo objeto para hacer una llamada por metodo get y hacer la del método post, no me estaba funcionando, entonces cree otro objeto aparte y ahi si no molesta para nada la cosa... muchisimas gracias de todas formas MaBoRaK, el tutorial de leimnud me sirvio para darme cuenta de cositas...
__________________
'Esto va a salir mal de todos modos, asi que no vale la pena estresarse por eso.' Tony Kakko.
KarenFerreira está desconectado   Responder Citando
Antiguo 13-nov-2006, 17:31   #7 (permalink)
MaBoRaK llegará a ser famoso muy prontoMaBoRaK llegará a ser famoso muy pronto
 
Avatar de MaBoRaK
 
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 1.781
Enviar un mensaje por MSN a MaBoRaK
loading..........


bueno :D
en el caso de GET siempre usa una variable random, de esa forma no actuara mas el caché.

var url = "descripcion.asp?rand="+Math.random();


connection closed.
__________________
maborak@maborak.com
http://www.maborak.com
Maborak technologies
MaBoRaK está desconectado   Responder Citando
Antiguo 14-nov-2006, 08:48   #8 (permalink)
KarenFerreira tiene algunos puntos positivos de karma
 
Avatar de KarenFerreira
 
Fecha de Ingreso: abril-2005
Ubicación: Bucaramanga, Colombia
Mensajes: 83
Enviar un mensaje por MSN a KarenFerreira Enviar un mensaje por Yahoo  a KarenFerreira
Otro problema, pero al recoger los datos

Bien, entre mas avanzo mas cosas raras aparecen. Pues resulta que ya tenia solucionado lo del envío de datos por post, al hacer el envío lo que me devolvía era una cadena de texto extraida de mi base de datos, pero ahora, debo tomar de la base de datos para devolver junto con la cadena, algunos valores que usan decimales, algo asi como 0,5 y 40,5 por poner un ejemplo. El script ASP está devolviendo los valores porque ya lo probé individualmente, pero cuando llegan a javascript, la descripción aparece sin ningún problema, pero los valores decimales se convierten automáticamente en 0 (ceros), y no tengo la más mínima idea de porque. Estoy haciendo un cstr(variable), a las dos variables numéricas decimales antes de devolverlas de ASP, pero nada parece funcionar... alguna idea al respecto?
__________________
'Esto va a salir mal de todos modos, asi que no vale la pena estresarse por eso.' Tony Kakko.
KarenFerreira está desconectado   Responder Citando
Antiguo 14-nov-2006, 10:06   #9 (permalink)
vengava no se puede cailificar en este momento
 
Fecha de Ingreso: agosto-2006
Mensajes: 105
Prueba a devolver los números decimales con punto en lugar de coma.
vengava está desconectado   Responder Citando
Antiguo 14-nov-2006, 12:37   #10 (permalink)
KarenFerreira tiene algunos puntos positivos de karma
 
Avatar de KarenFerreira
 
Fecha de Ingreso: abril-2005
Ubicación: Bucaramanga, Colombia
Mensajes: 83
Enviar un mensaje por MSN a KarenFerreira Enviar un mensaje por Yahoo  a KarenFerreira
Ya habia probado eso también y no me funciona... que será???
__________________
'Esto va a salir mal de todos modos, asi que no vale la pena estresarse por eso.' Tony Kakko.
KarenFerreira está desconectado   Responder Citando
Antiguo 14-nov-2006, 13:57   #11 (permalink)
KarenFerreira tiene algunos puntos positivos de karma
 
Avatar de KarenFerreira
 
Fecha de Ingreso: abril-2005
Ubicación: Bucaramanga, Colombia
Mensajes: 83
Enviar un mensaje por MSN a KarenFerreira Enviar un mensaje por Yahoo  a KarenFerreira
Bueno, retomando, la cosa va en que estoy multiplicando los valores por mil antes de enviarlos, pero ni asi, me sigue recibiendo cero... alguna otra idea?
__________________
'Esto va a salir mal de todos modos, asi que no vale la pena estresarse por eso.' Tony Kakko.
KarenFerreira está desconectado   Responder Citando
Antiguo 14-nov-2006, 14:11   #12 (permalink)
MaBoRaK llegará a ser famoso muy prontoMaBoRaK llegará a ser famoso muy pronto
 
Avatar de MaBoRaK
 
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 1.781
Enviar un mensaje por MSN a MaBoRaK
loading........



bueno siempre MUESTRA LA PARTE DE CODIGO QUE CREES QUE FALLA :p

si recibes un valor con ,

var a= "0,76";

le haces alguna operacion? como 98+a;

o

parseInt(0,76)?

en ese caso siempre te devolvera 0

pero si tratas ese valor todo el tiempo como una CADENA nunca cambiara su valor.



connection closed.
__________________
maborak@maborak.com
http://www.maborak.com
Maborak technologies
MaBoRaK está desconectado   Responder Citando
Antiguo 14-nov-2006, 14:58   #13 (permalink)
KarenFerreira tiene algunos puntos positivos de karma
 
Avatar de KarenFerreira
 
Fecha de Ingreso: abril-2005
Ubicación: Bucaramanga, Colombia
Mensajes: 83
Enviar un mensaje por MSN a KarenFerreira Enviar un mensaje por Yahoo  a KarenFerreira
Oki doki, solucionado... gracias!
__________________
'Esto va a salir mal de todos modos, asi que no vale la pena estresarse por eso.' Tony Kakko.
KarenFerreira está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 15:18.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93