Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pellegrini2106

Duvida incluir registros com chave estrangeiras

Recommended Posts

Olá todos os programadores amigo do Fórum!!!!!

tenho um código fonte em MVC com as seguintes classes:

class Setor {
 
    private $id_setor;
    private $desc;
  
    function getId_setor() {
        return $this->id_setor;
    }
    function getDesc() {
        return $this->desc;
    }
    function setId_setor($id_setor) {
        $this->id_setor = $id_setor;
    }
    function setDesc($desc) {
        $this->desc = $desc;
    }

class Funcionario {

    private $id_func;
    private $id_setor;
    private $nomeF;

function getId_func() {
        return $this->id_func;
    }
    function getId_setor() {
        return $this->id_setor;
    }
    function getNomeF() {
        return $this->nomeF;
    }
    function setId_func($id_func) {
        $this->id_func = $id_func;
    }
    function setId_setor($id_setor) {
        $this->id_setor = $id_setor;
    }
    function setNomeF($nomeF) {
        $this->nomeF = $nomeF;
    }

1° Queria fazer um método chamado carregaCombobox() para carregar todos os setores consultados.

public function carregaBox() {
        $array = array();
        $sql = "SELECT * FROM tbsetor ORDER BY descricao";
        $campo = $this->cnx->prepare($sql);
        $campo->execute();
        while ($row = $campo->fetch(PDO::FETCH_ASSOC)) {
            $array[$row['id_setor']]['id_setor'] = $row['id_setor'];
            $array[$row['id_setor']]['descricao'] = $row['descricao'];
        }
        return $array;
    }

2° Depois criar no controleSetor um método chamado ctlcarregaBox() variável global por onde passa um $_POST. e retorna um método

public function ctlCarregaBox() {
        $this->setDesc($_POST['cbsetor']);
        return $this->carregaBox();
    }

3° Na visão ele chama o controle e carrega a combobox que esta na visaoCadastraFuncionario

<select class="ComboBox" name="cbsetor">
                                <?php
                                include '../controle/controleSetor.php';
                                $vs = new ControleSetor();
                                $array = $vs->ctlCarregaBox();
                                foreach ($array as $key => $valor) {
                                    ?>
                                    <option value="<?= $valor['id_setor']; ?>"><?= $valor['descricao']; ?>
                                    <?php } ?>    
                                </option>
                            </select>

A minha duvida e o seguinte como pego essa id_setor da tabela setor e gravo na tabela funcionário pois sabemos que um setor pode ter um ou muitos funcionários e um funcionário só pode ser alocado a um setor e eu preciso saber qual o setor q o funcionário será cadastrado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, você pode recuperar ela na pagina que vai o formulário com um $_POST

Exemplo:

pagina com o setor:

<form action="cadastro.php">

<select class="ComboBox" name="cbsetor">

<option value="1" >RH</option>

</select>

cadastro.php

$cadastro= new cadastro();

$cadastro->cadastroFuncionario($_POST['cbsetor']),$_POST['nome']),$_POST['etc']));

voce tambem pode salvar em variavel para deixar o código mais legivel

$cadastro= new cadastro();
$setor=$_POST['cbsetor']);
$nome=$_POST['nome']);
etc=$_POST['etc']);

$cadastro->cadastroFuncionario($setor,$nome,$etc);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.