Cita:
Iniciado por David el Grande
Es que esa función no está contemplando la posibilidad de haber radios. Está enviando todos los datos de los elementos del formulario sin discriminar.
Puedes agregar una condición así antes de incluir el valor a los datos a enviar:
Código javascript
:
Ver originalif (elemento.type == "radio") {
if (elemento.checked) {
/* Enviar */
}
}
funciono de maravilla muchas gracias por tu ayuda
la funcion quedo asi
Código PHP:
function enviarFormulario(url, formid){
var peticion = false
if (window.XMLHttpRequest) {// Si es Mozilla, Safari etc
peticion = new XMLHttpRequest()
} else if (window.ActiveXObject){ // pero si es IE
try {
peticion = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){ // en caso que sea una versión antigua
try{
peticion = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
var Formulario = document.getElementById(formid);
var cadenaFormulario = "";
var sepCampos;
sepCampos = "";
for (var i=0; i <= Formulario.elements.length-1;i++) {
if(Formulario.elements[i].type=='radio'){
if(Formulario.elements[i].checked){
cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+encodeURI(Formulario.elements[i].value);
sepCampos="&";}
}
else{
cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+encodeURI(Formulario.elements[i].value);
sepCampos="&";
}
}
peticion.open("POST", url, true);
peticion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
peticion.onreadystatechange = function () {
if (peticion.readyState == 4 && (peticion.status == 200 || window.location.href.indexOf ("http") == - 1)){
document.getElementById('contenedor').innerHTML = peticion.responseText;
}
}
peticion.send(cadenaFormulario);
}
por si al alguien le sirve