Stack Overflow em Português Asked by Gabriel Alcala on December 29, 2020
Estou criando um projeto e esbarrei em um problema.
A ideia é o seguinte: adicionar participantes em um evento específico.
Já criei tudo certinho: controllers, models e views.
A minha dúvida é como que faço para o controller/model receber as id’s de cada participante que selecionei em um multi-select
da view adicionar_participante
.
Tenho uma tabela (participantes_eventos) cujas colunas são:
id_relação
, id_usuario
, id_evento
.
Assim, para cada participante em um evento tenho uma relação nessa tabela.
Código da VIEW:
<h1>Adicionar participantes</h1>
<form action="adicionar-participante-evento" method="post">
<select multiple class="form-control" name="id_usuario">
<?php foreach ($usuarios as $usuario) { ?>
<option value="<?= $usuario['id_usuario']; ?>"><?= $usuario['nome_usuario']; ?></option>
<?php
}
?>
</select>
<button class="btn btn-default" type="submit">Adicionar</button>
</form>
Código do Controller Eventos:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class EventoController extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->view('template/cabecalho');
$this->load->view('template/footer');
}
public function index() {
$eventos = $this->EventosModel->listarTodos();
$dadosEventos = array('eventos' => $eventos );
$this->load->view('eventos/index', $dadosEventos);
}
public function adicionarParticipante(){
$usuarios = $this->UsuariosModel->listarTodos();
$dadosUsuarios = array('usuarios' => $usuarios);
$this->load->view('eventos/adicionar_participante', $dadosUsuarios);
}
public function adicionarParticipanteEvento(){
$id_usuarios_participantes = array(
'' => '';
);
}
}
Código do Model Eventos:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class EventosModel extends CI_Model {
public function listarTodos(){
$eventos = $this->db->get('eventos')->result_array();
return $eventos;
}
}
Então, para que possa ser enviado vários itens selecionados você deve colocar como um array assim:
<select multiple class="form-control" name="id_usuario[]">
Eu imagino que esteja trabalhando com rotas, não da pra saber, mas no seu controller em seu metodo que esta recebendo esses dados, imagino que seja o adicionarParticipanteEvento
deve fazer com que receba assim:
public function adicionarParticipanteEvento(){
$id_usuarios_participantes = $this->input->post('id_usuario');
// somente para ver se esta vindo certo e depois trabalhar com esses dados
var_dump($id_usuarios_participantes);
}
E uma dica que dou e que não acho correto do que esta fazendo é chamar essas views no __construct (não tem nada a ver com o seu problema, mas só uma dica mesmo).
Answered by Marcelo Diniz on December 29, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP