Ir para conteúdo

POWERED BY:

Arquivado

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

ell_cpu

[Resolvido] Recuperar valor de combobox do MySQL com Codeigniter

Recommended Posts

models/categoria_model.php

class Categorias_model extends CI_Model
{
public $tab_categorias		= 'categorias';

public function __construct()
{
	parent::__construct();
}

function get_categorias() {

	$this->db->where('id_pai',0);
   	return $this->db->get($this->tab_categorias)->result();

}

function get_subcategorias($id_pai)
{
	$this->db->from($this->tab_categorias);
	$this->db->where(array('id_pai'=>$id_pai, 'ativo'=>'Sim'));
	$this->db->order_by('posicao', 'asc');
	return $this->db->get()->result();

}
}

 

Controllers/categoria.php

function get_categoria()
{
   	$data['categorias'] = $this->categorias_model->get_categorias();

   	$data['textos'] = $this->textos_model->get_by_textos(array('id_texto'=>$id));

	$data['subcats'] = $this->categorias_model->get_subcategorias($data['textos']->categoria_id);

	$this->load->view('categorias', $data);
}

 

views/categorias.php

<form action="" method="POST" enctype="multipart/form-data">
<table>
	<tr>
		<th><label for="categoria"> Categoria </label></th>
		<td>
	  	<?php
			$categoria['Categorias Disponíveis'][''] = 'Selecione uma categoria';
			foreach($categorias as $a){
				$categoria['Categorias Disponíveis'][$a->id_cat] = $a->nome;
			}
			echo  form_dropdown('categoria', $categoria, array($textos->categoria_id),"id='categoria'");
			?>
		</td>
	</tr>

	<tr>
		<th><label for="subcategoria"> Subategoria </label></th>
		<td>
			<select name='subcategoria' id='subcategoria'>
			<option value=''> Selecione uma subcategoria </option>
			<?php

			if (isset($subcategorias)) {

				echo "<optgroup label='Subcategoria'>";

				foreach ($subcategorias as $key => $list) {
					echo "<option value='". $list['id_cat'] . "'>" . $list['nome'] . "</option>";
				}

				echo "</optgroup>";
			}else{
				$subcategoria['Categorias Disponíveis'][''] = 'Selecione uma categoria';
				foreach ($subcats as $key => $list) {
					$selected = $textos->subcategoria_id == $list->id_cat ? 'selected=selected': '';
					echo "<option value='{$list->id_cat}' {$selected}>{$list->nome}</option>";
				}
			}
			?>
			</select>
		</td>
	</tr>
</table>

 

O javascripts (Certifique-se de ter baixado a última versão do jQuery)

<script type="text/javascript">
$(document).ready(function(){
	$('select#categoria').change(function(){
		var categoria = $("#categoria").val(); // Pega o valor selecionado
			//alert(categoria); //Só para debugg da variavel

		$('#subcategoria').load('/get_categoria/'+categoria); //controller onde está chamando a função
	});
});
</script>

 

Acho q é isso. Qualquer dúvida é só postar um comentário!!!

 

Pode até não ser a melhor solução mas, deve servir!!

 

Esqueci a tabela do MySQL

 

--

-- Estrutura da tabela `categorias`

--

 

CREATE TABLE IF NOT EXISTS `ell_categorias` (

`id_cat` int(11) NOT NULL AUTO_INCREMENT,

`nome` varchar(30) DEFAULT NULL,

`posicao` int(11) NOT NULL,

`id_pai` int(11) DEFAULT NULL,

`ativo` enum('Sim','Não') NOT NULL DEFAULT 'Sim',

PRIMARY KEY (`id_cat`),

FULLTEXT KEY `busca` (`nome`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

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.