Ir para conteúdo

POWERED BY:

Arquivado

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

Eduardo Kalsing

[Resolvido] Combo select produto e cor

Recommended Posts

Bom dia!

preciso que ao selecionar um produto, no select abaixo apareça as cores disponíves para este produto.

Tenho o seguinte código, na página "add-foto-produto.php":

//PHP
<tr valign="baseline">
                	<td align="left"><b>Produto:</b></td>
                </tr>
                <tr>
                	<td><select name="id_produto" id="estados">
						<? $result = mysql_query("select * from tbl_produtos");
 						   while($row = mysql_fetch_array($result) ){
            			   echo "<option value='".$row['id']."'>".$row['titulo']."</option>"; 
						   }?>
                  		</select>
                 	</td>
                </tr>
                <tr>
					<td><b>Cor:</b></td>
				</tr>
                <tr>
                  	<td>  
                    	<select name="id_cor" id="cidades">
						<? 
							$idestado = $_GET['estado'];

							$result = mysql_query("SELECT * FROM tbl_cores WHERE id_produto = ".$idestado);
							while($row = mysql_fetch_array($result) ){
    						echo "<option value='".$row['id']."'>".$row['nome']."</option>";
							} ?>
                    	</select>
                  	</td>
                </tr>

//JS
<script type="text/javascript">
$(document).ready(function(){
            $('#estados').change(function(){
                $('#cidades').load('add-foto-produto.php?estado='+$('#estados').val() );
            });
        });

</script>


e ainda estou carregando o jquery.js.

 

O que está acontecendo é que seleciono o produto, o select abaixo sai todo bugado... alguém tem idéia do que possa ser?

Obrigado!

 

Tirei esse Ajax daqui:

http://www.botecodigital.info/jquery/carregando-um-combobox-com-ajax-com-jquery/

 

O que realmente acontece é que quando seleciono algo do primeiro select, no segundo, aparentemente carrega toda página novamente...

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma forma mais bonita:

http://forum.imasters.com.br/index.php?/topic/365795-combos-dependentes-ajax-jquery/

 

ai sim, com base no que for selecionado no primeiro select, você trás os valores do segundo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma forma mais bonita:

http://forum.imasters.com.br/index.php?/topic/365795-combos-dependentes-ajax-jquery/

 

ai sim, com base no que for selecionado no primeiro select, você trás os valores do segundo.

 

William, algo ainda não está funfando...

 

Troquei o nome do banco e tabelas e tal... mas ao selecionar a primeira opção, não aparecem carrega as opções do segundo select... isso, com o que tu passou naquele outro link

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostre como ficou o teu código.

Acessa diretamente o arquivo que gera o JSON, e vê se ta sendo formado corretamente, ou se tem erros php.

Compartilhar este post


Link para o post
Compartilhar em outros sites


// pagina dos selects

<tr>

<td>

<select name="combo1">

<?php do { ?>

<option value="<?php echo $row_rs_galerias['id']?>"><?php echo $row_rs_galerias['titulo']?></option>

<? }

while ($row_rs_galerias = mysql_fetch_assoc($rs_galerias));

$rows = mysql_num_rows($rs_galerias);

if($rows > 0) {

mysql_data_seek($rs_galerias, 0);

$row_rs_galerias = mysql_fetch_assoc($rs_galerias);

} ?>

 

 

</select>

</td>

</tr>

<tr>

<td><b>Cor:</b></td>

</tr>

<tr>

<td>

<select name="combo2">

</select>

</td>

</tr>

 

//pagina das function

<?php

header("Content-Type: text/html; charset=ISO-8859-1");

 

function intGet( $campo ){

return isset( $_GET[$campo] ) ? (int)$_GET[$campo] : 0;

}

function retorno( $id )

{

$sql = "SELECT *

FROM tbl_cores

WHERE id_produto = {$id} ";

 

 

$con = mysql_connect('localhost', 'root', '');

mysql_select_db( 'perfilyne', $con );

 

 

 

$q = mysql_query( $sql );

 

 

$json = ' [';

 

if( mysql_num_rows( $q ) > 0 )

{

 

while( $dados = mysql_fetch_assoc( $q ) )

{

 

$json .= '{"nome'.$campo.'":"'.$dados['nome'].'","id'.$campo.'":"'.$dados['id'].'"}, ';

}

}

else

$json .= '{"nome'.$campo.'": "Não Encontrado"}';

 

$json .= ']';

 

return $json;

}

 

echo retorno( intGet('idCombo1') );

?>

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acessa diretamente lá:

localhost/function.inc.php?idCombo1=2

 

veja se retorna o jSON ou erros php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Okay, baixou o jQuery ?

http://docs.jquery.com/Downloading_jQuery

 

coloca como id ai, algum valor que exista no teu DB, e veja se o jSON volta certo.

localhost/function.inc.php?idCombo1=12
, =15 ... sei lá..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho... mas vamos pensar que o erro é no php, por enqnto.

 

execute assim:

$q = mysql_query( $sql )or die( mysql_error() );

depois coloque esse alert:

var idCombo1 = $(this).val();//pegando o value do option selecionado
                alert(idCombo1);//apenas para debugar a variável
veja oque volta (ou se volta alguma coisa no alert)

outro alert importante para debug:

function(data){
                                alert(data);//apenas para debugar a variável

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz tudo isso que tu falou e agora, quando mudo a opção, aparece no alert: "[object Object]"

 

 

e quando deixo descomentando o primeiro alert, que é pra passar o id, os id's passam normal, 11, 12... e tal.

 

Bah William, tu me desculpa cara! Eu viajei!

 

é que o campo nome que tá na tua consulta do banco, no meu caso, na tabela se chama título, por isso nunca escrevia o nome da cor.

 

Mas tenho outra pergunta:

tem como trazer a cor já selecionada no caso do produto que vem por default?

Compartilhar este post


Link para o post
Compartilhar em outros sites

depende.. posta a estrutura da tabela ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

depende.. posta a estrutura da tabela ai.

 

William, esquece! Vou deixar a primeira opção como "Escolha produto", daí não tem galho!

 

Cara, funcionou direitinho agora!

 

Muito obrigado pela ajuda e desculpa a confusão!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tranquilo ^_^

 

mas veja assim... era fácil... se tem um default, então você define esse default em algum lugar ne ?!

 

durante o loop, bastava verificar isso, para mandar um selected="selected" lá...

 

[Resolvido] !

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.