Ir para conteúdo

POWERED BY:

Arquivado

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

Kohler

Subcombos usando JS+PHP

Recommended Posts

Amigos.. http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

 

 

Estou com um probleminha aqui em javascript que envolve php também, tipo.. o sistema é meio complexo pra mim explicar aqui no forum, porque ele é dividido em vários arquivos e acredito que o pessoal não teria "saco" suficiente de analizar e entender pra que serve cada função, sendo assim gostaria de saber se alguem entendido em javascript se dispõe a me ajudar com isto e se acharem possivel e vantajoso, eu posto os arquivos aqui.. é que sou novo aqui e nao sei como proceder neste tipo de situacao (um sistema que envolve varios arquivos).. http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

 

Obrigado http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá então..

 

O sistema é o seguinte:

 

1. Tabela do banco de dados chamada: "revendas", nesta tabela há uma serie de dados e informações sobre veiculos (nome, cor, ano, modelo, etc..)

 

2. O que estou querendo fazer, é um sisteminha de busca com combos dinâmicos, na tabela há os campos: categoria (carro,moto,patinete..) marca (ford,fiat,etc) modelo (gol g3, etc..).

 

3. Combo1: Lista de categorias pegas do banco de dados (até aí tudo bem..)

 

4. Combo2: Interagindo dinamicamente com a combo1, traz as marcas referentes aquela categoria (carro,moto,bicicleta,patinete,etc..) - até aí tudo bem também..

 

6. Combo3: Traz os modelos referentes a marca selecionada na combo2 ** PROBLEMA***

 

--------

escondido.php

<? require("../setup.php");require("classes.php");error_reporting(E_ALL & ~ E_NOTICE);#error_reporting(0);?><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><script src="lib.js"></script><script language="JavaScript">function retornaMarcas(){    return "<?phpif (isset($categoria) && !empty($categoria)) {    echo Menu::retornaSelectMarcas($categoria);}?>";}</script></head><body onLoad="parent.carregaMarcas()"></body></html>

classes.php

<script src="lib.js"></script><?phprequire("../setup.php");error_reporting(E_ALL & ~ E_NOTICE);#error_reporting(0);       # Esta classe utiliza as tabelas contendo os dados de todas as categorias     class Menu {     # Retorna o resultado da consulta pela categoria      function listarCategorias()     {        return mysql_query("SELECT DISTINCT(categoria) FROM revendas order by categoria ASC");    }     # Retorna o resultado da consulta pelas marcas de uma determinada categoria.    function listarMarcas($categoria)    {        return mysql_query("SELECT DISTINCT(marca) FROM revendas WHERE categoria = '$categoria' ORDER BY marca ASC");    }        # Retorna o select das categorias, para que possa ser utilizado no html.      function retornaSelectCategorias()    {        $retorno = "<select name=\"categoria\" onChange=\"buscaMarcas(this)\">\n<option value='Selecione' selected>Selecione</option>\n";         $categorias = Menu::listarCategorias();        while ($dados_categorias = mysql_fetch_assoc($categorias)) {            $retorno .= "<option value=\"".$dados_categorias['categoria']."\">".$dados_categorias['categoria']."</option>\n";        }        $retorno .= "</select>\n";                return $retorno;    }         # Retorna o select das  marcas, sem quebras de linha, para que possa ser utilizado     # no JavaScript.    function retornaSelectMarcas($categoria)    {        $retorno = "<select name='marca' ><option value='Selecione' selected>Selecione</option>";         $marcas = Menu::listarMarcas($categoria);        while ($dados_marcas = mysql_fetch_assoc($marcas)) {            $retorno .= "<option value='".$dados_marcas['marca']."'>".$dados_marcas['marca']."</option>";        }        $retorno .= "</select>";                return $retorno;    }}?>

busca.php

<?require("../setup.php");require("classes.php");?><div id="categorias">Categoria:<br><script src="lib.js"></script><iframe src="escondido.php" name="escondido" width="0" height="0"></iframe><div id="categorias"><?=Menu::retornaSelectCategorias()?></div></div></td><td valign="top">Marca:<br><div id="marcas"></div><div id="marcas"></div>    </td>

lib.js

function buscaMarcas(campo){    eval("parent.escondido.location='escondido.php?categoria="+campo.options[campo.selectedIndex].value+"'");}function carregaMarcas(){     var novo_select;    var nome_div = "marcas";    novo_select  = parent.escondido.retornaMarcas();        if (document.getElementById) {        document.getElementById(nome_div).innerHTML = novo_select;    } else if (document.all) {        document.all[nome_div].innerHTML = novo_select;    } else if(document.layers) {        document[nome_div].innerHTML = novo_select;    }}

Problema:

 

Quando eu insiro a função (javascript) neste codigo:

 function retornaSelectMarcas($categoria)    { $retorno = "<select name='marca' onChange=\"buscaModelos(this)\"><option value='Selecione' selected>Selecione</option>";

O script inteiro para de funcionar!!

 

http://www.litoralcar.com.br/combos/busca.php - aqui está o exemplo dele "funcionando" (mas só com os 2 primeiros combos..)

 

Se alguém souber.. me avisa!

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.