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";