M@rc 1 Denunciar post Postado Novembro 15, 2016 Boa noite pessoal, Tenho um classe que tem um método de inserir no banco e um formulário que vai receber os dados e enviar via post. Tem como no action do form eu passar a classe (ProdutoController) e o método (insere) para os quais eu quero enviar os dados desse form? <?php class ProdutoController { public function insere() { $nome = $_POST['nome']; $descricao = $_POST['descricao']; $preco = $_POST['preco']; $conexao = new Database(); $produto = new Produto(); $produto->setNome($nome); $produto->setPreco($preco); $produto->setDescricao($descricao); $produtoDao = new ProdutoDao(); $produtoDao->adiciona($conexao, $produto); } } <form method="post" action=" "> <div class="form-group"> <label>Nome</label> <input type="text" class="form-control" name="nome"> </div> <div class="form-group"> <label>Descrição</label> <input type="text" class="form-control" name="descricao"> </div> <div class="form-group"> <label>Preço</label> <input type="text" class="form-control" name="preco"> </div> <button type="submit" class="btn btn-primary">Adicionar</button> </form> Compartilhar este post Link para o post Compartilhar em outros sites
LaerteDias 17 Denunciar post Postado Novembro 15, 2016 Caso esteja com dúvida sobre o padrão MVC aqui um link de uma videoaula implementando o mesmo:https://www.youtube.com/watch?v=x1ZrEK65IpE Compartilhar este post Link para o post Compartilhar em outros sites
M@rc 1 Denunciar post Postado Novembro 15, 2016 Conheço esse vídeo e não me ajudou muito com essa minha dúvida. Você sabe se é possível fazer o que falei e como? Compartilhar este post Link para o post Compartilhar em outros sites
LaerteDias 17 Denunciar post Postado Novembro 15, 2016 No action voce colocaria o caminho até o controle responsável e referenciando o metodo tipo <form action="caminho/ProdutoController/insere" > Mas depende de está usando url amigavéis: http://blog.thiagobelem.net/aprendendo-urls-amigaveis Compartilhar este post Link para o post Compartilhar em outros sites
M@rc 1 Denunciar post Postado Novembro 15, 2016 No action voce colocaria o caminho até o controle responsável e referenciando o metodo tipo <form action="caminho/ProdutoController/insere" > Mas depende de está usando url amigavéis: http://blog.thiagobelem.net/aprendendo-urls-amigaveis Não estou usando URL amigável. Para fazer isso teria que obrigatoriamente usar? Compartilhar este post Link para o post Compartilhar em outros sites
LaerteDias 17 Denunciar post Postado Novembro 15, 2016 Olha cara tenta para ver se resolve, caso negativo pesquisarei mas e te ajudarei Compartilhar este post Link para o post Compartilhar em outros sites
M@rc 1 Denunciar post Postado Novembro 15, 2016 Olha cara tenta para ver se resolve, caso negativo pesquisarei mas e te ajudarei Eu vi, só que não entendi no que isso resolveria o problema de passar a classe e método pelo action. Compartilhar este post Link para o post Compartilhar em outros sites
LaerteDias 17 Denunciar post Postado Novembro 15, 2016 Olha cara tem um curso que dão essa dica usando um framework bem simples hxphp é só digita no youtube hxphp Compartilhar este post Link para o post Compartilhar em outros sites
M@rc 1 Denunciar post Postado Novembro 15, 2016 Assisti ao vídeo e não tinha nada sobre fazer isso que preciso. E ele usa um framework. Bom, parece que não é possível fazer o que preciso. Compartilhar este post Link para o post Compartilhar em outros sites
LaerteDias 17 Denunciar post Postado Novembro 15, 2016 Olha cara tem um post antigo falando sobre isso:http://forum.imasters.com.br/topic/552767-problemas-com-classe-controle-do-mvc/ Compartilhar este post Link para o post Compartilhar em outros sites
M@rc 1 Denunciar post Postado Novembro 15, 2016 Consegui resolver meu problema da seguinte forma: <?php require_once ('../models/Produto.php'); require_once ('../models/ProdutoDAO.php'); require_once ('../config/Database.php'); if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['method'])) { $method = $_POST['method']; if(method_exists('ProdutoController', $method)) { $product = new ProdutoController; $product->$method($_POST); } else { echo 'Metodo incorreto'; } } class ProdutoController{ function insere() { $nome = $_POST['nome']; $descricao = $_POST['descricao']; $preco = $_POST['preco']; $conexao = new Database(); $produto = new Produto(); $produto->setNome($nome); $produto->setPreco($preco); $produto->setDescricao($descricao); $produtoDao = new ProdutoDao(); $produtoDao->adiciona($conexao, $produto); } } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="../../public/css/bootstrap.min.css" rel="stylesheet"> <title>Adiciona Produto</title> </head> <body> <div class="container"> <h3>Adicionar Produto</h3> <form method="post" action="../../controllers/ProdutoController.php"> <input type="hidden" name="method" value="insere"> <div class="form-group"> <label>Nome</label> <input type="text" class="form-control" name="nome"> </div> <div class="form-group"> <label>Descrição</label> <input type="text" class="form-control" name="descricao"> </div> <div class="form-group"> <label>Preço</label> <input type="text" class="form-control" name="preco"> </div> <button type="submit" class="btn btn-primary">Adicionar</button> </form> </div> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites