Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Crear y llenar array multidimensional Javascript a partir de HTML generado con ciclos PHP

2 de julio de 2015

Buenas, estoy tratando de construir una matriz con JavaScript para validar los valores ingresados en unos input generados a través de código PHP y realmente se me ha complicado la cuestión. Si alguien puede ayudarme.

El código es mas o menos el siguiente:

<form action="xxxx.php" id="insertar" method="post">
    <table>
        <?php 
            $plancha=1;
            $_SESSION["cantidad_plancha"]=count($eleccion->plancha);
            foreach($eleccion->plancha as $planchas)
            {
        ?>
        <tr>
            <td class="voto_manual_plancha"> <?=$planchas->nombre?></td>
            <td> 
                <input id="voto<?=$plancha?>" type="text" size="5" maxlength="5" value="0" class="required number " onChange="actualizar_plancha_en_matriz()";>
            </td>
        </tr>
        <?php
            $candidato=1;
            $_SESSION["nombre_plancha".$plancha]=$planchas->nombre;
            $_SESSION["plancha_id".$plancha]=$planchas->id;
            $_SESSION["cantidad_candidatos".$plancha]= count($planchas->candidato);
            foreach($planchas->candidato as $candidatos)
            { 
                $_SESSION["candidato_id".$plancha.$candidato]= $candidatos->id;
        ?>
                <tr>
                    <td  class="voto_manual_candidato">
                    <?php
                        $nombre_candidato=$candidatos->get_nombre();
                        echo " - ".$nombre_candidato
                    ?>
                    </td>
                    <td>
                        <input style="width:50px;" name="voto<?=$plancha.$candidato?>" id="voto<?=$plancha.$candidato?>" type="text" size="5" maxlength="5" value="0" class="required number" onChange="actualizar_cand_en_matriz();">
                    </td>
                </tr>
        <?php 
                $candidato++; 
            }
            $plancha++; 
            }
        ?>
        </table>
 
    <input id="cargar" onClick="return validar();" type="submit" value="Cargar" />
</form>

Y esto genera un código HTML como el siguiente:

<table>
    <tbody>
        <tr>
            <td class="voto_manual_plancha">PLANCHA X</td>
            <td> 
                <input type="text" onchange="actualizar_plancha_en_matriz()" class="required number" value="0" maxlength="5" size="5" id="voto1" style="width:50px;">
            </td>
        </tr>
        <tr>
            <td class="voto_manual_candidato">-  CANDIDATO X1</td>
            <td>
                <input type="text" onchange="actualizar_cand_en_matriz();" class="required number" value="0" maxlength="5" size="5" id="voto11" style="width:50px;">
            </td>
        </tr>
        <tr>
            <td class="voto_manual_candidato">-  CANDIDATO X2</td>
            <td>
                <input type="text" onchange="actualizar_cand_en_matriz();" class="required number" value="0" maxlength="5" size="5" id="voto12" style="width:50px;">
            </td>
        </tr>
        <tr>
            <td class="voto_manual_candidato">-  CANDIDATO X3</td>
            <td>
                <input type="text" onchange="actualizar_cand_en_matriz();" class="required number" value="0" maxlength="5" size="5" id="voto13" style="width:50px;">
            </td>
        </tr>
        <tr>
            <td class="voto_manual_plancha">PLANCHA Y</td>
            <td> 
                <input type="text" onchange="actualizar_plancha_en_matriz()" class="required number" value="0" maxlength="5" size="5" id="voto2" style="width:50px;">
            </td>
        </tr>
        <tr>
            <td class="voto_manual_candidato">-  CANDIDATO Y1</td>
            <td>
                <input type="text" onchange="actualizar_cand_en_matriz();" class="required number" value="0" maxlength="5" size="5" id="voto21" style="width:50px;">
            </td>
        </tr>
        <tr>
            <td class="voto_manual_candidato">-  CANDIDATO Y2</td>
            <td>
                <input type="text" onchange="actualizar_cand_en_matriz();" class="required number" value="0" maxlength="5" size="5" id="voto22" style="width:50px;">
            </td>
        </tr>
        <tr>
            <td class="voto_manual_candidato">-  CANDIDATO Y3</td>
            <td>
                <input type="text" onchange="actualizar_cand_en_matriz();" class="required number" value="0" maxlength="5" size="5" id="voto23" style="width:50px;">
            </td>
        </tr>
        <tr>
            <td class="voto_manual_plancha">PLANCHA Z</td>
            <td> 
                <input type="text" onchange="actualizar_plancha_en_matriz()" class="required number" value="0" maxlength="5" size="5" id="voto3" style="width:50px;">
            </td>
        </tr>
        <tr>
            <td class="voto_manual_candidato">-  CANDIDATO Z1</td>
            <td>
                <input type="text" onchange="actualizar_cand_en_matriz();" class="required number" value="0" maxlength="5" size="5" id="voto31" style="width:50px;">
            </td>
        </tr>
        <tr>
            <td class="voto_manual_candidato">-  CANDIDATO Z2</td>
            <td>
                <input type="text" onchange="actualizar_cand_en_matriz();" class="required number" value="0" maxlength="5" size="5" id="voto32" style="width:50px;">
            </td>
        </tr>
        <tr>
            <td class="voto_manual_candidato">-  CANDIDATO Z3</td>
            <td>
                <input type="text" onchange="actualizar_cand_en_matriz();" class="required number" value="0" maxlength="5" size="5" id="voto33" style="width:50px;">
            </td>
        </tr>
    </tbody>
</table>

Necesito verificar (mediante onClick="return validar();" del input "Cargar") que la sumatoria de los votos de candidatos sea igual a los votos de la plancha y que la sumatoria de las planchas sea igual a un número que tengo en un input previo con id="total".

Mi idea era generar una matriz donde la primera fila (matriz[#plancha][0]) se almacenaran los votos de las planchas y en cada columna (matriz[#plancha][1..n]) almacenar los votos de cada candidato por plancha. ¿Alguien me podría ayudar? Muchas gracias.