Ver Mensaje Individual
  #5 (permalink)  
Antiguo 29/05/2015, 12:42
Avatar de zalito12
zalito12
 
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Como enviar variableJS a un formulario

Vale, yo no suleo usar formularios con arrays pero el problema reside en como accedes al campo donde quieres insertar el valor.
Esto está bien:
Código Javascript:
Ver original
  1. for (i = 0; i < document.frm.certificado.length; i++) {
  2. if (certificado[i].checked) {

Pero aquí, estás accediendo por id:
Código Javascript:
Ver original
  1. document.getElementById("flag").value = txt;

La etiqueta id está pensada, como su nombre indica, para ser un identificador, un identificador único, por eso se espera que no se repita en el mismo documento, es decir, que si quieres que tu web esté bien diseñada no se deberían repetir id's.
Como se espera que sea único el primero que encuentra es el que coje y al que afecta.

Lo que no entiendo es porque no lo haces directamente en el bucle:
Código Javascript:
Ver original
  1. function marcar1(){
  2.     var txt = "";
  3.     var i;
  4.     for (i = 0; i < document.frm.certificado.length; i++) {
  5.         if (certificado[i].checked) {
  6.             //txt = document.frm.certificado[i].value;
  7.             flag[i].value =  certificado[i].value;
  8.         }
  9.     }
  10.     //document.getElementById("flag").value = txt;
  11. }

Por último si quieres que tu código sea más eficaz deberías ahorrarte ese bucle, como te digo yo no uso formularios con inputs de arrays pero podrías probar algo así:

Código PHP:
Ver original
  1. <form name="frm" id="frm">
  2. <table class="table">
  3. <tr>
  4. <td>CERTIFICADO</td>
  5. <td>ACCION</td>
  6. </tr>
  7. <?php
  8.     $index = 0;
  9.     foreach($rsCol as $rCol){
  10. ?>
  11. <tr>
  12. <td>
  13.     <input type="radio" name="certificado[]" id="certificado" value="1" onclick="marcar1(<?php echo $index; ?>)">
  14.     <input type="text" name="flag[]" id="flag">
  15. </td>
  16. <td>
  17.     <button type="submit" name="input_submit" value="Grabar">Grabar</button>
  18. </td>
  19. </tr>
  20. <?php
  21.         $index++;
  22.     }  
  23. ?>
  24. </form>

Código Javascript:
Ver original
  1. function marcar1(index){
  2.     if (certificado[index].checked) {
  3.         //txt = document.frm.certificado[i].value;
  4.         flag[index].value =  certificado[index].value;
  5.     }else{
  6.         //Al desmarcar...
  7.     }
  8.     //document.getElementById("flag").value = txt;
  9. }

Algo así debería funcionar, si hay una forma mejor de pasarle el índice a la función de JS no la conozco porque como te he dicho suelo evitar este tipo de implementaciones.

Saludos!
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP