Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/01/2009, 12:47
softredmania
 
Fecha de Ingreso: agosto-2007
Mensajes: 6
Antigüedad: 17 años, 4 meses
Puntos: 0
Sonrisa Ayuda efecto interactivo mover en javascript

Buenas

Estoy haciendo un software de encuestas interactivo y tengo un problema al capturar las variables de unos radio buttons, el problema es que los radio button estan ocultos y el usuario solo interactua con unos cuadros que los debe arrastrar a otro cuadro donde se encuentra el radio button oculto por un cuadro.

Es un efecto muy novedoso, pero tengo problemas para capturar las variables de ese radio button y luego guardarlas en la bd por medio de un script php.

Publico el codigo

Solo debes copiar y pegar en front page o en dereamweaver.

Espero su colaboracion, la idea es que cuando den clic en siguiente obtener el valor de las opciones del radio button estan ocultas

Es mucho codigo lo subi a rapidshare para que lo bajen y lo miren y me ayuden

Código PHP:
<script type="text/javascript" language="javascript">
var 
comprobaciones = new Array();
function 
Submit(param) {
  
// Comprobar todo
  
var 0;
  var 
testOK true;
  while(
testOK && comprobaciones.length) {
    
testOK comprobaciones[i]();
    
i++;
  }
  if (!
testOK) return;

  
// Hacer las acciones despues de comprobar que todo esta bien
  
if(param=="PaginaAnterior") {
    
document.survey.boton.value="<<";
    
document.survey.submit();
  }
  else if(
param=="NoEnviar") {
    
document.survey.boton.value="Cancelar";
    
window.location.href='../vistas/Redireccion.jsp';
  }
  else if(
param=="EnviarFalso") {

  
    
evalResult=validarRestricciones();
    if (
evalResult==null){
        
document.survey.boton.value="Cancelar";
        
window.location.href='../vistas/Redireccion.jsp';
    } else {
      
alert(evalResult);
    }
    
  }
  else if(
param=="Enviar") {
    
         
evalResult=validarRestricciones();
         if (
evalResult==null) {
                
               
document.survey.accion.value="GrabarRespuestas";
               
document.survey.boton.value="Enviar";
               
document.survey.submit();
         } else
           
alert(evalResult);
    
  } else if(
param=="Interrumpir") {
      
document.survey.accion.value="InterrumpirEncuesta";
      
document.survey.submit();
  } else if(
param=="PaginaSiguiente") {
    
    
        
evalResult=validarRestricciones();
        if (
evalResult==null) {
            
            
document.survey.accion.value="GrabarRespuestas";
            
document.survey.boton.value=">>";
            
document.survey.submit();
        }
        else 
alert(evalResult);
    
  }
}
    
    function 
validarRestricciones(){
       
result=null;
       
if(
document.getElementById('origen').empty()){
    for(
i=1;i<=col;i++){
        var 
vector_respuestas=document.getElementById('receptor'+i).getElementsByTagName('DIV');
        var 
j=0;
        while(
j<vector_respuestas.length){
            var 
respuesta=vector_respuestas[j].id.substring(7);
            
document.survey['RespMatrizSR'+etiq+'.'+respuesta+'Fila'+respuesta].value=i;
            
j++;
        }
    }
}
else{
result="Faltan opciones por completar";}


       return 
result;
    }

function 
comprobarPreguntaNumerica(pNumericamaximominimolimitacionMaxMinentero){

  
//en el caso de limitacion por maximo y minimo, los parametros
  //maximo y minimo contienen el numero maximo y el minimo
  //en el caso de limitacion por numero de digitos, el parametro
  //maximo contiene el numero maximo de digitos de la parte entera
  //minimo contiene el numero maximo de digito de la parte decimal
  
if(pNumerica.value!=""){
    if(
esNumero(pNumerica)){
      if (
comprobacionEnteroDecimal(pNumericaentero)){
        if(
limitacionMaxMin){
          return 
comprobarMaxMin(pNumericamaximominimo);
        }
        else{
          return 
comprobarRangos(pNumericamaximominimoentero);
        }
      }
    }
    return 
false;
  }
  return 
true;
}
function 
chequeaMCMRFinal(elementelementPlustextoPlus) {
  var 
marcado document.getElementById(element).checked;
  var 
document.getElementById(elementPlus).value.length;
  if(
s==&& marcado==true) {
    
alert('Para poder escoger la opci\u00F3n de "' textoPlus '" hay que marcar la opci\u00F3n e insertar alg\u00FAn valor en el campo de texto')
      return 
false;
  }
  else {
      return 
true;
  }
}
function 
esNumero(parametro){
  if (!
esNumeroDecimal(parametro.value)){
    
alert('El valor '+parametro.value+' debe ser num\u00E9rico, y el simbolo decimal, si lo lleva, debe ser un punto.');
    
parametro.focus();
    return 
false;
  }

  return 
true;
}

//
//
//
function comprobacionEnteroDecimal(pNumericaentero){

  
numero=pNumerica.value;
  if (
entero){
    if (!
esNumeroNatural(numero)){
      
numero=numero.substring(1,numero.length);
      if (!
esNumeroNatural(numero)){
        
alert('El n\u00FAmero debe ser un entero');
        
pNumerica.focus();
        return 
false;
      }
      return 
true;
    }
    return 
true;
  }
  return 
true;
}

//
//
//
function comprobarMaxMin(pNumericamaximominimo){
  if (
pNumerica.value>maximo){
    
alert('El valor m\u00E1ximo es: ' maximo);
    
pNumerica.focus();
    return 
false;
  }
  else if(
pNumerica.value minimo){
    
alert('El valor m\u00EDnimo es: ' minimo);
    
pNumerica.focus();
    return 
false;
  }
  return 
true;
}

function 
comprobarRangos(pNumericaenterosdecimalesentero){
  
numero=pNumerica.value;
  if (!
entero){
    
contadorEnteros=0;
    
contadorDecimales=0;
    
encontradaComa=false;
    for(
i=0;numero.length;i++){
      if(
numero.charAt(i)=='.'){
        
encontradaComa=true;
      }
      else {
        if(!
encontradaComa){
          if (!(
numero.charAt(i)=='-')){
            
contadorEnteros++;
          }
        }
        else{
          
contadorDecimales++;
        }
      }
    }
    if (
contadorEnteros>enteros || contadorDecimales>decimales){
      
alert('N\u00FAmero m\u00E1ximo d\u00EDgitos enteros=' enteros ' N\u00FAmero m\u00E1ximo d\u00EDgitos decimales=' decimales);
      
pNumerica.focus();
      return 
false;
    }
  }
  return 
true;
}

function 
sincronizarAnyosMeses(fuentechequeo){
   
// Esta funcion espera dos COMBOBOXES, si fuente.value = "", entonces
   // chequeo.value=0, pero solo en caso que chequeo.value sea tambien ""
   
if ((fuente.selectedIndex>0) && (chequeo.selectedIndex==0)){
     
chequeo.selectedIndex=1;
   }
   else
   if ((
fuente.selectedIndex==0) && (chequeo.selectedIndex>0)){
     
chequeo.selectedIndex=0;
   }
   return 
true;
}

function 
comprobacionNoVacioMCSRPLUS(elementelementPlustextoPlus){
  for (
i=0;element.length;i++){
    if (
element[i].value=='0' && element[i].checked){
      if(
elementPlus.value=='' || (!esNoCadenaEspacios(elementPlus.value))){
        
mensaje='Para poder escoger la opci\u00F3n de "' textoPlus '" hay que marcar la opci\u00F3n e insertar alg\u00FAn valor en el campo de texto';
        
alert(mensaje);
        
element[i].checked=false;
        return 
false;
      }
    }
  }
  return 
true;
}

function 
comprobacionNoVacioMCSRPLUSDropDown(elementelementPlustextoPlus){
  if (
element[element.selectedIndex].value=='0'){
    if(
elementPlus.value=='' || (!esNoCadenaEspacios(elementPlus.value))){
      
mensaje='Para poder escoger la opci\u00F3n de "' textoPlus '" hay que marcar la opci\u00F3n e insertar alg\u00FAn valor en el campo de texto';
      
alert(mensaje);
      
element.selectedIndex=0;
      return 
false;
    }
  }
  return 
true;
}

function 
comprobacionSeleccionOtrosMCSRPLUS(elementelementPlustextoPlus){
  for (
i=0;element.length;i++){
    if (
element[i].value=='0' ){
      if(!
elementPlus.value==''){
        
element[i].checked=true;
        }
      }
  }
  return 
true;
}

function 
comprobacionSeleccionOtrosMCSRPLUSDropDown(elementelementPlustextoPlus){
  for (
i=0;element.length;i++){
    if (
element[i].value=='0' ){
      if(!
elementPlus.value==''){
      
element.selectedIndex=i;
        }
      }
  }
  return 
true;
}

function 
chequeaMCMROpcionPlusCambiandoCheckbox(elementelementPlus){
  var 
marcado document.getElementById(element).checked;
  var 
plus document.getElementById(elementPlus);
  if(
marcado)
      
plus.focus();
  else
      
plus.value='';
  return 
true;
}

function 
chequeaMCMROpcionPlusCambiandoCampo(elementelementPlus){
  var 
document.getElementById(elementPlus).value.length
  
document.getElementById(element).checked=(s>0);
  return 
true;
}

function 
reseteaFormulario(){
  if(
confirm('\u00BFEst\u00E1 seguro que desea borrar todas las respuestas de esta p\u00E1gina? ')) {
    for (
i=0;document.forms[0].length;i++){
      if (
document.forms[0].elements[i].type=="radio")document.forms[0].elements[i].checked=false;
      else if (
document.forms[0].elements[i].type=="text")document.forms[0].elements[i].value='';
      else if (
document.forms[0].elements[i].type=="textarea")document.forms[0].elements[i].value='';
      else if (
document.forms[0].elements[i].type=="checkbox")document.forms[0].elements[i].checked=false;
      else if (
document.forms[0].elements[i].type=="select-one")document.forms[0].elements[i].selectedIndex=0;
      }
    }
}

contadorKeepAlive 72// 72 * 10 min = 12 h
function keepalive() {
    if (
document.images && contadorKeepAlive 0) {
       
img1 = new Image();
       
img1.src "front.jsp?accion=KeepAlive&random="+ new Date().getHours() +""+ new Date().getMinutes();
       
contadorKeepAlive --;
    }
}
setInterval('keepalive()'10*60*1000); // 10 minutos


</SCRIPT> 
Muchas gracias