Fernado Von Vougher Postado Setembro 2 Compartilhar Postado Setembro 2 Ola Pessoal, alguém tem feito algum select dinâmico para trazer os dados das cidades do banco de dados na tela, usando linguagem CodeIgniter 4. grato 1 Link to comment Compartilhe em outros sites Outras opções de compartilhamento...
frankhosaka Postado Setembro 2 Compartilhar Postado Setembro 2 Esse código eu peguei com a Gemini <?php // cidades.php namespace App\Models; use CodeIgniter\Model; class CidadesModel extends Model { protected $table = 'cidades'; protected $primaryKey = 'id'; public function getCidades() { return $this->findAll(); } } <?php // Home.php namespace App\Controllers; use App\Models\CidadesModel; class Home extends BaseController { public function index() { $model = new CidadesModel(); $dados['cidades'] = $model->getCidades(); return view('home', $dados); } } <!DOCTYPE html><!-- home.php --> <html> <head> <title>Exemplo CodeIgniter 4</title> </head> <body> <form> <select name="cidade"> <option value="">Selecione uma cidade</option> <?php foreach($cidades as $cidade): ?> <option value="<?= $cidade['id'] ?>"><?= $cidade['nome'] ?></option> <?php endforeach; ?> </select> </form> </body> </html> Espero que isso lhe ajude. 2 Link to comment Compartilhe em outros sites Outras opções de compartilhamento...
Fernado Von Vougher Postado Quarta às 17:29 Autor(a) Compartilhar Postado Quarta às 17:29 Muito obrigado pela ajuda, aprendi com essas dicas, já esta rodando quando faço uma INCLUSÃO, mais quando vou fazer uma EDIÇÃO , não aparece o que havia INSERIDO no campo SELECT da tela, Precisa fazer alguma outra rotina para que apareça no campo SELECT da tela o valor INSERIDO para EDITAR? Quando puder orientar na ajuda, agradeço, abraço Observ.: Esta gravando corretamente no banco de dados. Somente preciso que quando for EDITAR traga no campo cidade o nome cadastrado. Link to comment Compartilhe em outros sites Outras opções de compartilhamento...
frankhosaka Postado Quarta às 19:23 Compartilhar Postado Quarta às 19:23 (editado) Eu não trabalho com o CodeIgniter, assim não sei como lhe ajudar. A minha praia é o POG (Programação Orientada para Gambiarra), o que segue é um péssimo exemplo de programação, ele só funciona a partir do PHP 8.2. arquivo /Astudy/cidadeEditar.php <!-- cidadesEditar.php --> <table style="width:500px;margin:0 auto"> <?php foreach($cidades as $cidade): ?> <form method=post action=?Cidades.editado> <tr><td><?=$cidade->id?><input type=hidden name=id value=<?=$cidade->id?>> <td><input name=cidade value="<?=$cidade->nome?>"> <td><input type=submit> </form> <?php endforeach;?> </table> arquivo /Astudy/cidades.php <?php class Cidades { function inicio() { $cidades=(new Conn)->select("* from cidades"); return view('cidadeEditar',['cidades'=>$cidades]); } function editado() { $novoNome=$_POST['cidade']; $id=$_POST['id']; (new Conn)->update("cidades set nome='$novoNome' where id=$id"); return $this->inicio(); } } arquivo /Astudy/config.php <?php // config.php defined('HOST') || define('HOST', 'localhost'); defined('DBNAME') || define('DBNAME', 'teste'); defined('USER') || define('USER','root'); defined('PASSWORD') || define('PASSWORD', ''); spl_autoload_register(fn ($class) => require str_replace('\\', DIRECTORY_SEPARATOR, strtolower($class)) . '.php'); function view($arquivo, $array = null) { if (!is_null($array)){ foreach ($array as $var => $value) { ${$var} = $value; } } ob_start(); include $arquivo . ".php"; ob_flush(); } class Conn { private static $pdo; public static function instancia() { if(!self::$pdo) { self::$pdo=new PDO("mysql:host=".HOST.";dbname=".DBNAME,USER,PASSWORD); } return self::$pdo; } function insert($sql) { return $this->instancia()->query("insert into $sql"); } function select($sql) { $stmt=$this->instancia()->query("select $sql"); return $stmt->fetchAll(PDO::FETCH_OBJ); } function update($sql) { return $this->instancia()->query("update $sql"); } } arquivo /Astudy/index.php <?php // index.php require 'config.php'; $rota='Cidades_inicio'; if($_GET) { if(strpos(key($_GET),"_")==0) { exit; } $rota=isset($_GET) ? key($_GET) : $rota; } $segmentos=explode('_',$rota); $nomeControle=$segmentos[0] ?? 'Cidades'; $metodo=$segmentos[1] ?? 'inicio'; $parametro=$segmentos[2] ?? null; $controle=new $nomeControle(); $controle->$metodo($parametro); arquivo /Astudy/mysql.sql CREATE TABLE `cidades` ( `id` int NOT NULL AUTO_INCREMENT, `nome` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci Editado Quarta às 19:33 por frankhosaka Link to comment Compartilhe em outros sites Outras opções de compartilhamento...
Postagens Recomendadas
Crie uma conta ou entre para comentar 😀
Você precisa ser um membro para deixar um comentário.
Crie a sua conta
Participe da nossa comunidade, crie sua conta.
Criar minha conta agoraÉ bem rápido!
Entrar
Você já tem uma conta?
Entrar agoraFaça o login agora.