Ver Mensaje Individual
  #13 (permalink)  
Antiguo 25/07/2008, 23:29
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 16 años, 7 meses
Puntos: 11
Respuesta: Error SOBRENATURAL en función escape()

que onda?


pruebalo asi:

Código HTML:
function enviar() {
    //getValorRadioButton();
    var i=0;
    var lineaOk=0;
    
    // cadena que contendrán los índices de ProdCatalogoCostos
    // y además de LibretaDirecciones
    var libreta_direcciones = "";
    var prod_catalogo_costos = "";
    var es_regalo = "";
    var de = "";
    var para = "";
    var mensaje = "";
    
    var codigos = document.getElementById('id_prods').value;
    var num_codigos = codigos.length;
    // elimino el último caracter que es un -
    var codigos_cortado = codigos.slice(0,num_codigos-1);
    // Split para dejarlos en un arreglo por separado
    var codigos_sep = codigos.split("-");
    
    
    var indices = document.getElementById('ind').value;
    var num_indices = indices.length;
    // elimino el último caracter que es un -
    var indices_cortado = indices.slice(0,num_indices-1);
    // Split para dejarlos en un arreglo por separado
    var indices_sep = indices.split("-");
    
    for(i=0; i<(codigos_sep.length-1); i++) {
        if(document.getElementById('opcionRegalo'+indices_sep[i]).value == "1") {
            // si es regalo
            if(document.getElementById('de'+indices_sep[i]).value != ""
                && document.getElementById('para'+indices_sep[i]).value != ""
                && document.getElementById('mensaje'+indices_sep[i]).value != "")
                // valida que haya seleccionado la dirección y método de envío
                if(document.getElementById('direccionEnvio'+indices_sep[i]).value != ""
                    && document.getElementById('metodoEnvio'+indices_sep[i]).value != "")
                    // contar línea correcta con todo validado
                    lineaOk++;
        } else {
            // si NO es regalo
            if(document.getElementById('direccionEnvio'+indices_sep[i]).value != ""
                && document.getElementById('metodoEnvio'+indices_sep[i]).value != "")
                // contar línea correcta con todo validado
                lineaOk++;
        }
    }
    // si lineaOK es igual al total de elementos de codigos_sep es porque
    // todas las líneas están correctas y se puede avanzar
    if(lineaOk == (codigos_sep.length-1)) {
        
        
        
        //creo una URL para pasarle los datos de los id a metodoPago
        //recorro de nuevo los elementos
        for(i=0; i<(codigos_sep.length-1); i++) {
            libreta_direcciones += document.getElementById('direccionEnvio'+indices_sep[i]).value+"-";
            prod_catalogo_costos += document.getElementById('metodoEnvio'+indices_sep[i]).value+"-";
            es_regalo += document.getElementById('opcionRegalo'+indices_sep[i]).value+"-";
            if(document.getElementById('opcionRegalo'+indices_sep[i]).value == "1") {
                de += document.getElementById('de'+indices_sep[i]).value+"-";
                para += document.getElementById('para'+indices_sep[i]).value+"-";
                mensaje += document.getElementById('mensaje'+indices_sep[i]).value+"-";
            } else {
                // @@ significa que no es regalo y no lleva mensaje
                de += "@@-";
                para += "@@-";
                mensaje += "@@-";
            }
        }
        
                            
        var formulario = document.getElementById('frmEnvio');
        
        var id_producto = document.createElement("hidden");
        id_producto.value = codigos;
        id_producto.name = "id_producto";
        formulario.appendChild = id_producto;

        var id_prodcatalogocostos = document.createElement("hidden");
        id_prodcatalogocostos.value = prod_catalogo_costos;
        id_prodcatalogocostos.name = "id_prodcatalogocostos";
        formulario.appendChild = id_prodcatalogocostos;

        var id_libretadirecciones = document.createElement("hidden");
        id_libretadirecciones.value = libreta_direcciones;
        id_libretadirecciones.name = "id_libretadirecciones";
        formulario.appendChild = id_libretadirecciones;

        var regalo = document.createElement("hidden");
        regalo.value = es_regalo;
        regalo.name = "regalo";
        formulario.appendChild = regalo;
        
        var de_hidden = document.createElement("hidden");
        de_hidden.value = de;
        de_hidden.name = "de";
        formulario.appendChild = de_hidden;

        var para_hidden = document.createElement("hidden");
        para_hidden.value = para;
        para_hidden.name = "para";
        formulario.appendChild = para_hidden;

        var mensaje_hidden = document.createElement("hidden");
        mensaje_hidden.value = mensaje;
        mensaje_hidden.name = "mensaje";
        formulario.appendChild = mensaje_hidden;


        //if(ff) replace(" ","%20",url)
        document.getElementById('frmEnvio').method = "POST";
        document.getElementById('frmEnvio').action = "metodoPago.php";
        document.getElementById('frmEnvio').submit();
        
        //location.href="metodoPago.php"+escape(url);
        
    } else {
         alert("Debes completar todos los campos para continuar");
    }
}
Espero no haberme equivocado en el codigo.

Importante: recuerda que las variables ahora estan siendo pasadas por POST, en metodoPago.php deberas levantarlas teniendo en cuenta esto ($_POST)

A cruzar los dedos

--editado--
si las quieres por get cambia esto:

document.getElementById('frmEnvio').method = "GET";