Ir para conteúdo
Fórum Script Brasil
  • 0

COMO ATUALIZAR UM SELECT AO SELECIONAR OUTRO SELECT


adrsublimacao

Pergunta

boa tarde tenho um cadastro de produtos onde tem 2 select
1 chamado de categorias
e outro sub categorias
queria que ao seleciona-se a categorias as sub categorias carregasse no outro select somente as da categorias selecionada baseado no cadastro do banco de dados

Estrutura da tabela `categorias`
--

CREATE TABLE `categorias` (
`id` int(11) NOT NULL,
`nome` varchar(100) NOT NULL,
`descricao` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`url` varchar(100) NOT NULL,
`idu` int(11) NOT NULL,
`posicao` int(11) NOT NULL
)

Estrutura da tabela `subcategorias`
--

CREATE TABLE `subcategorias` (
`id` int(11) NOT NULL,
`idu` int(11) NOT NULL,
`nome` varchar(100) NOT NULL,
`descricao` text NOT NULL,
`categoria` varchar(100) NOT NULL,
`foto` varchar(100) NOT NULL
)

segue um exemplo

<div class="col-md-4">
<div class="form-group">
<label class="form-control-label">Categoria: <span class="tx-danger">*</span></label>
<select class="form-control" name="cad_cat" required>
<option value="" disabled selected><b>Selecione...</b></option>
<?php
$selcat = $connect->query("SELECT * FROM categorias WHERE idu = '$cod_id' ORDER BY posicao ASC");
while ($dadossel = $selcat->fetch(PDO::FETCH_OBJ)) {
?>
<option value="<?php print $idca = $dadossel->id;?>"><?php print $nomca = $dadossel->nome;?></option>
<?php } ?>
</select>
</div>
</div><!-- col-4 -->

<div class="col-md-4">
<div class="form-group">
<label class="form-control-label">Sub-Categoria: <span class="tx-danger">*</span></label>
<select class="form-control" name="cad_subcat" required>
<option value="" disabled selected><b>Selecione...</b></option>
<?php
$selcat2 = $connect->query("SELECT * FROM subcategorias WHERE idu = '$cod_id' ORDER BY nome ASC");
while ($dadossel2 = $selcat2->fetch(PDO::FETCH_OBJ)) {
?>
<option value="<?php print $idca = $dadossel2->id;?>"><?php print $nomca = $dadossel2->nome;?></option>
<?php } ?>
</select>
</div>
</div><!-- col-4 -->


como faria funcionar esses dois select interligado retornando os dados em JSON,. E criar o select com javascript
ou se alguém souber outra solucao

fico no aguardo desde já agradeço

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Solução em andamento...

1) Entender o que é categoria e subcategoria. Na minha cabeça veio isso:

id	descrição	categoria	subcategoria
1	blusa rosa	roupa feminina	blusa
2	blusa azul	roupa masculina	blusa
3	saia rosa	roupa feminina	saia
4	calça azul	roupa mascuina	calça
			

2) Montar o banco de dados, aqui vou usar o MySQL

CREATE TABLE `tbvestuario` (
  `id` int NOT NULL AUTO_INCREMENT,
  `descricao` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
  `categoria` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `subcategoria` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci

3) Como listar as categorias no PHP?

<?php
$pdo=new PDO("mysql:host=localhost;dbname=astudy","root","");
$query = $pdo->query("select categoria from tbvestuario");
$categorias = $query->fetchAll(PDO::FETCH_OBJ);
foreach($categorias as $categorias){echo $categorias->categoria."<br>";}

4) Apareceram muitas categorias repetidas, como agrupá-los?

<?php
$pdo=new PDO("mysql:host=localhost;dbname=astudy","root","");
$query = $pdo->query("select categoria from tbvestuario group by categoria order by categoria");
$categorias = $query->fetchAll(PDO::FETCH_OBJ);
foreach($categorias as $categorias){echo $categorias->categoria."<br>";}

5) Como colocar as categorias numa caixa de seleção?

<?php
$pdo=new PDO("mysql:host=localhost;dbname=astudy","root","");
$query = $pdo->query("select categoria from tbvestuario group by categoria order by categoria");
$categorias = $query->fetchAll(PDO::FETCH_OBJ);
echo "<form>";
echo "<select name=categoria onchange=submit()><option value=''>Escolha uma opção</option>";
foreach($categorias as $categorias){
    $categoria=$categorias->categoria;
    echo "<option value='$categoria'>$categoria</option>";}
echo "</select>";
echo "</form>";

6) Como pegar as subcategorias?

<?php
$pdo=new PDO("mysql:host=localhost;dbname=astudy","root","");
if(!isset($_GET['categoria'])){
    $query = $pdo->query("select categoria from tbvestuario group by categoria order by categoria");
    $categorias = $query->fetchAll(PDO::FETCH_OBJ);
    echo "<form>";
    echo "<select name=categoria onchange=submit()><option value=''>Escolha uma categoria</option>";
    foreach($categorias as $categorias){
        $categoria=$categorias->categoria;
        echo "<option value='$categoria'>$categoria</option>";}
    echo "</select>";
    echo "</form>";exit;}
$categoria=$_GET['categoria'];
echo "Categoria $categoria <p>";
$query = $pdo->query("select subcategoria from tbvestuario where categoria='$categoria' group by subcategoria order by subcategoria");
$subcategorias = $query->fetchAll(PDO::FETCH_OBJ);
echo "<select name=subcategoria><option>Veja as subcategorias</option>";
foreach($subcategorias as $subcategoria){
    echo "<option>$subcategoria->subcategoria</option>";}
echo "</select><p>";
echo "<input type=submit value='Começar de novo' onclick=location.replace('astudy.php')>";

7) Para melhorar o visual, recomendo <body style="width:300;margin:0 auto"> ou o Bootstrap 5.3

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...