entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Rellenar array multidimensional desde un formulario

No encuentro información sobre como llenar un array multidimensional al cual le envié los datos desde un formulario

Estoy realizando un gestor de base de datos para un trabajo del ciclo superior asir.

Lo que necesito realizar es un formulario para crear tablas en una base de datos en la cual e establecido el formulario el cual con javascript y botones agrego mas campos al formulario modificando el dom.

Los cuales serian los campos para agregar los atributos y las claves ajenas a la tabla.

Pero ahora me encuentro el problema de como enviar todos los datos al php para la función de mysqly para crear la tabla.

he estado mirando y la solucion seria con array multidimensiones pero no encuentro el como recojer los datos en en el array al enviarlo desde el formulario.

formulario inicial:

enter image description here

formulario con elementos añadidos

enter image description here

código del formulario:

    <form action="" method="post" id="formulariotablas">

    <div> 
    <label for="">Nombre de la tabla</label><input type="text">
    </div>

    <div>
        <label for="">Atibutos:</label>
        <input type=button id="agregar" value="Añadir otro">    
    </div>

    <div class="tablaatributos">

    <table id="tablaatributosid"> 

        <tr>
            <th>Nombre</th>
            <th>Tipo</th>
            <th>Primary Key</th>
            <th>Unique</th>
            <th>Nulo</th>
            <th>Default</th>
        </tr>

        <tr >
        <td><input type="text" name="nombre[]" class="caja2"></td>
        <td>
            <select class="caja2">
            <option value="INT">INT</option>
            <option value="CHAR">CHAR</option>
            <option value="ENUM">ENUM</option>
            <option value="VARCHAR">VARCHAR</option>
        </select>
        </td>
        <td><input type="checkbox" name="permisos[]" value="nulo"></td>
        <td><input type="checkbox" name="permisos[]" value="nulo"></td>
        <td><input type="checkbox" name="permisos[]" value="nulo"></td>
        <td><input type="text"></td>
        </tr>
    </table>
</div>

<div>

    <label for="">Crear Constraing</label>
    <input type=button id="agregarconstraing" value="Añadir otro">
</div>  

<div id="constraingcaja" class="cajaconstraing">

        <p>CONSTRAINT</p>
        <input type="text">
        <p>FOREIGN KEY</p> 
        (<select name="" id="">

        </select>) 
        <p>REFERENCES</p> 
        <select name="tabla" class="tablasselecionadas">
            <option value="0">Selecciona Tabla</option>

        </select>
        (<select name="" class="selectatributo">

        </select>) 
        <p>ON UPDATE</p>
        <select name="" id="">

        </select>
        <p>ON DELETE</p> 
        <select name="" id="">

        </select>

</div>
<div class="fintabla">

    <p>ENGINE=</p>
    <select name="" id="">
        <option value="">Seleciona Motor</option>
        <?php include 'consultamotores.php'; ?>
    </select>

        <p>CHARACTER SET</p>
    <select name="" id="selectcharacter">
        <option value="">Seleccina Character</option>
        <?php include 'consultacharacter.php'; ?>
    </select>

        <p>COLLATE</p>
    <select name="" id="selectcolaciones">
        <option value="">Seleciona Collation</option>

    </select>

</div>

1voto

magarzon comentado

Si añades algo de tu código, cómo es el formulario por ejemplo, te podremos ayudar mejor

1 Respuesta

2votos

magarzon Puntos30650

Hola.

Lo que tienes que hacer es llamar a todos los inputs de la parte que se repite (los constraint por ejemplo) con el mismo nombre, pero añadiendo un índice.

Por ejemplo, para el primer constraint tendrías un input con name="constraints[0]", otro name="references[0]", otro name="onupdates[0]", etc.

Para el segundo sería name="constraints[1]", name="references[1]", name="onupdates[1]" y así sucesivamente.

Este índice lo puedes (debes) añadir y actualizar en tu función de añadir constraint.

Luego, en el PHP, no tienes más que recoger el valor de cada input como $_POST["constraints"], por ejemplo, y esto te da directamente un array con todos los valores de todos los inputs que se llamen constraints[]

1voto

garri comentado

lo probare haber si lo consigo

gracias por tu ayuda

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta