es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Coloca los datos del arreglo en el campo de entrada y envía esos datos al modelo como registros separados.

Estoy usando CodeIgniter y tengo un array que proviene de una función de JavaScript en un archivo de vista y quiero pasarlo a un formulario para guardarlo en la base de datos después de enviar los datos. Después de enviarlos, va al controlador -> función del modelo usando post y luego se guarda después de algunas condiciones if. Mi pregunta es cómo podemos obtener ese array en algunos campos de entrada para pasarlo en el método post y cómo debemos definirlo.

En el archivo de vista de la función:

function mi_funcion{
// después de algunos códigos
const my_array =[];
}

La salida de este array es:

0:{a:’1′,b:’2′,c:’35’}
1:{a:’2′,b:’3′,c:’34’}
2:{a:’5′,b:’1′,c:’87’}
3:{a:’4′,b:’3′,c:’90’}

Debería aparecer aquí en modo de solo lectura:

Y esto debería guardarse en la base de datos como registros separados después de hacer clic en enviar.

¿Cómo puedo implementar esto? ¿Y cómo puedo pasar esto al controlador para llevarlo al modelo?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para implementar esto, podemos utilizar un bucle para recorrer cada elemento del array y crear campos de entrada con sus respectivos valores. Podemos configurar los campos de entrada como de solo lectura para que el usuario no pueda cambiarlos. También podemos asignar a cada campo de entrada un campo oculto con el mismo nombre para que pueda ser enviado con el formulario. Aquí tienes un ejemplo de cómo hacerlo:

    <form method="post" action="<?= base_url('controller/guardar_datos') ?>">
        <?php foreach ($my_array as $item): ?>
            <div class="row">
                <div class="col-md-5">
                    <input type="text" id="a" name="a[]" class="form-control" value="<?= $item['a'] ?>" readonly="">
                    <input type="hidden" name="a_h[]" value="<?= $item['a'] ?>">
                </div>
                <div class="col-md-5">
                    <input type="text" id="b" name="b[]" class="form-control" value="<?= $item['b'] ?>" readonly="">
                    <input type="hidden" name="b_h[]" value="<?= $item['b'] ?>">
                </div>
                <div class="col-md-5">
                    <input type="text" id="c" name="c[]" class="form-control" value="<?= $item['c'] ?>" readonly="">
                    <input type="hidden" name="c_h[]" value="<?= $item['c'] ?>">
                </div>
            </div>
        <?php endforeach; ?>
        <button type="submit" class="btn btn-primary">Guardar</button>
    </form>
    

    En el código anterior, recorremos cada elemento del array $my_array y creamos campos de entrada con sus respectivos valores. También creamos campos ocultos con los mismos nombres para que puedan ser enviados con el formulario. En el controlador, podemos acceder a estos valores usando la variable $_POST de la siguiente manera:

    public function guardar_datos()
    {
        $a = $this->input->post('a_h');
        $b = $this->input->post('b_h');
        $c = $this->input->post('c_h');
    
        // Realizar validación y guardar en la base de datos
    }
    

    En el código anterior, utilizamos el método input->post() para obtener los valores de los campos ocultos. Luego, podemos realizar cualquier validación que necesitemos y guardar los datos en la base de datos usando el modelo.

Comments are closed.