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

como passar valores do php para uma div na mesma pagina?


Thyago Henrique

Pergunta

Boa tarde galera!

Estou com a seguinte dúvida: tenho um form onde o usuário vai escolher em duas combos uma linha e um produto. Feito as escolhas, clicará em buscar que habilitará uma div na mesma página onde irá aparecer os dados do produto escolhido.

Na action do form chamei uma função Javascript que habilita a div. Mas os dados não vão para essa div. O que devo fazer para conseguir passar os dados? alguém poderia me ajudar?

Obrigado!!

Thyago

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Uhm, o que você está querendo fazer não é possível com php, já que o php roda dentro do servidor apenas e o que você está querendo fazer é algo no lado do cliente. Para solução do seu caso ou recarrega a página inteira após a seleção dos parâmetros para que o servidor faça a busca dos dados de produto no servidor ou tem que levar as informações de todos os produtos para o cliente já no primeiro acesso e deixá-las ocultas, mostrando só o que for solicitado. Eu sugiro que utilize a primeira opção, já que a segunda pode gerar um volume de dados inuteis muito grande.

Link para o comentário
Compartilhar em outros sites

  • 0

Galera, segue abaixo o codigo da pagina onde quero fazer com que apareca os dados dentro da div.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="scripts/estilos.css" rel="stylesheet" type="text/css" media="all" />

<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
    //executando a função para selecionar o produto
    $(document).ready(function(){
        $("select[name=produto]").change(function(){
            $("select[name=linha]").html('<option value="0">Carregando...</option>');
            $.post("linhas.php",
                   {produto:$(this).val()},
                   function(valor){
                       $("select[name=linha]").html(valor);                       
                   })
        })
    })
    
    function chamaformulario(){
        //window.reloadPage();
        document.getElementById('div_teste').style.display = 'block';
    }
</script>
</head>
<body>
    <form action="java script:chamaformulario();" id="FormMail" name="FormMail" method="post">
        <table width="100%" border="0" cellspacing="3" cellpadding="0">
            <tr>
                <td align="right" width="50%">
                    <div class="margem_produtos">
                    <select name="produto" id="produto">
                        <option value="0">Selecione o produto desejado</option>
                        <?php
                            include ("conecta.php");
                            //selecionando os dados da tabela produtos ordenado por id
                            $sql = "SELECT * FROM produtos ORDER BY id ASC";
                            //Executando o codigo mysql e caso tenha erro sera mostrada uma msg
                            $qr = mysql_query($sql) or die (mysql_error());
                            //Listando os produtos
                            while ($ln = mysql_fetch_assoc($qr)){
                                echo '<option value="'.$ln['id'].'">'.htmlentities($ln['id']." - ".$ln['descricao']).'</option>';
                            }
                        ?>
                    </select>
                    </div>
                </td>
                <td align="left" width="50%">
                    <div class="margem_produtos">
                    <select name="linha" id="linha">                    
                        <option value="0" disabled="disabled">Selecione o produto</option>
                    </select>
                    </div>
                </td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <div class="margem_produtos">
                        <input type="submit" name="btn_buscar" id="btn_buscar" value="Buscar..." class="btnForm" />
                    </div>
                </td>
            </tr>
        </table>
    </form>
    <div id="div_teste" name="div_teste" style="border: solid 2px #000; display: none;">
        <?
            $produto = $_POST['produto'];
            $linha = $_POST['linha'];
            
            echo "ID Produto: ".$produto."<br>";
            echo "ID Linha: ".$linha;
        ?>
    </div>
</body>
</html>

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0
Uhm, o que você está querendo fazer não é possível com php, já que o php roda dentro do servidor apenas e o que você está querendo fazer é algo no lado do cliente. Para solução do seu caso ou recarrega a página inteira após a seleção dos parâmetros para que o servidor faça a busca dos dados de produto no servidor ou tem que levar as informações de todos os produtos para o cliente já no primeiro acesso e deixá-las ocultas, mostrando só o que for solicitado. Eu sugiro que utilize a primeira opção, já que a segunda pode gerar um volume de dados inuteis muito grande.

Tentei dando um refresh na página porém não rolou também. Sobre a segunda opção que você me deu, desculpe mas não entendi.

Vlw pela ajuda!

Abs

Link para o comentário
Compartilhar em outros sites

  • 0

Boa Tarde, Thyago Henrique!

Para conseguir resultado como refresh na mesma página, você precisa usar o AJAX.

Caso contrário, use a mesma uma outra página para códigos e através do header("location:......") volte para a página origem sem que o usuário perceba.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0
Boa Tarde, Thyago Henrique!

Para conseguir resultado como refresh na mesma página, você precisa usar o AJAX.

Caso contrário, use a mesma uma outra página para códigos e através do header("location:......") volte para a página origem sem que o usuário perceba.

Abraços.

Como disse, já tentei o refresh porém não rolou!! Continua o mesmo erro.

Vlw!!

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade, o que eu pensei é submeter o formulário a cada modificação feita. No primeiro "select" colocando "onchange" = "java script:document.FormMail.submit()" E em todos os divs colocar um if para testar se houve o POST daquele campo, se sim, habilita o próximo fazendo a busca usando como regra o valor enviado. Por exemplo:

<form action="" method="post" name="FormMail">
<div>
<select name="produto" id="produto" onchange="java script:busca_linha()">
<?php
  echo "<option value=\"0\">Selecione o produto desejado</option>";
  include ("conecta.php");
  //selecionando os dados da tabela produtos ordenado por id
  $sql = "SELECT * FROM produtos ORDER BY id ASC";
  //Executando o codigo mysql e caso tenha erro sera mostrada uma msg
  $qr = mysql_query($sql) or die (mysql_error());
  //Listando os produtos
  while ($ln = mysql_fetch_assoc($qr))
  {
    echo '<option value="'.$ln['id'].'">'.htmlentities($ln['id']." - ".$ln['descricao']).'</option>';
  }
?>
</select>
</div>

<div>
<select name="linha" id="linha">
<?php
if($_POST['produto'] AND $_POST['linha'] = 0))
{
  //aqui faz a busca da linha de acordo com o especificado no primeiro select
}
else
{
  echo "<option value=\"0\" disabled=\"disabled\">Selecione o produto</option>";
}
?>
</select>
</div>

<div class="margem_produtos">
  <input type="submit" name="btn_buscar" id="btn_buscar" value="Buscar..." class="btnForm" />
</div>

<?
if(($_POST['produto'] AND $_POST['linha'] != 0)
{
echo "<div id=\"div_teste\" name=\"div_teste\" style=\"border: solid 2px #000; display: none;\">";
$produto = $_POST['produto'];
$linha = $_POST['linha'];
            
echo "ID Produto: ".$produto."<br>";
echo "ID Linha: ".$linha;
echo "</div>";
}
?>
A função busca_linha() seria:
function busca_linha()
{
  document.FormMail.linha.value=0;
  document.FormMail.submit();
}

Acho que assim dará certo.

Como bem comentado aqui (http://scriptbrasil.com.br/forum/index.php?showtopic=156137) dá para fazer isso com ajax, pelo o que parece, nesse caso não precisaria ficar recarregando a página.

Link para o comentário
Compartilhar em outros sites

  • 0
Na verdade, o que eu pensei é submeter o formulário a cada modificação feita. No primeiro "select" colocando "onchange" = "java script:document.FormMail.submit()" E em todos os divs colocar um if para testar se houve o POST daquele campo, se sim, habilita o próximo fazendo a busca usando como regra o valor enviado. Por exemplo:

<form action="" method="post" name="FormMail">
<div>
<select name="produto" id="produto" onchange="java script:busca_linha()">
<?php
  echo "<option value=\"0\">Selecione o produto desejado</option>";
  include ("conecta.php");
  //selecionando os dados da tabela produtos ordenado por id
  $sql = "SELECT * FROM produtos ORDER BY id ASC";
  //Executando o codigo mysql e caso tenha erro sera mostrada uma msg
  $qr = mysql_query($sql) or die (mysql_error());
  //Listando os produtos
  while ($ln = mysql_fetch_assoc($qr))
  {
    echo '<option value="'.$ln['id'].'">'.htmlentities($ln['id']." - ".$ln['descricao']).'</option>';
  }
?>
</select>
</div>

<div>
<select name="linha" id="linha">
<?php
if($_POST['produto'] AND $_POST['linha'] = 0))
{
  //aqui faz a busca da linha de acordo com o especificado no primeiro select
}
else
{
  echo "<option value=\"0\" disabled=\"disabled\">Selecione o produto</option>";
}
?>
</select>
</div>

<div class="margem_produtos">
  <input type="submit" name="btn_buscar" id="btn_buscar" value="Buscar..." class="btnForm" />
</div>

<?
if(($_POST['produto'] AND $_POST['linha'] != 0)
{
echo "<div id=\"div_teste\" name=\"div_teste\" style=\"border: solid 2px #000; display: none;\">";
$produto = $_POST['produto'];
$linha = $_POST['linha'];
            
echo "ID Produto: ".$produto."<br>";
echo "ID Linha: ".$linha;
echo "</div>";
}
?>
A função busca_linha() seria:
function busca_linha()
{
  document.FormMail.linha.value=0;
  document.FormMail.submit();
}

Acho que assim dará certo.

Como bem comentado aqui (http://scriptbrasil.com.br/forum/index.php?showtopic=156137) dá para fazer isso com ajax, pelo o que parece, nesse caso não precisaria ficar recarregando a página.

Kara...vlw..mas ele não reconhece a variavel produto que está lá onde chama a Div. Quando eu seleciono uma opção de produto, ele dá um refresh na página.

Abs

Link para o comentário
Compartilhar em outros sites

  • 0

Troque:

while ($ln = mysql_fetch_assoc($qr))
  {
    echo '<option value="'.$ln['id'].'">'.htmlentities($ln['id']." - ".$ln['descricao']).'</option>';
  }
Por:
while ($ln = mysql_fetch_assoc($qr))
  {
    if($_POST['produto'] AND $_POST['produto'] == ln['id'])
    {
      echo '<option value="'.$ln['id'].'" selected>'.htmlentities($ln['id']." - ".$ln['descricao']).'</option>';
    }
    else
   {
      echo '<option value="'.$ln['id'].'">'.htmlentities($ln['id']." - ".$ln['descricao']).'</option>';
    }
  }

Link para o comentário
Compartilhar em outros sites

  • 0

nada feito ainda...acontece este erro: Notice: Undefined index: produto in c:\program files\easyphp1-8\www\pagina\pages\produtos.php on line 110

Segue abaixo a linha citada no erro acima:

<?
    if($_POST['produto'] AND $_POST['linha'] != 0)
    {
        echo "<div id=\"div_teste\" name=\"div_teste\" style=\"border: solid 2px #000; display: none;\">";
            $produto = $_POST['produto'];
            $linha = $_POST['linha'];
                            
            echo "ID Produto: ".$produto."<br>";
            echo "ID Linha: ".$linha;
        echo "</div>";
    }
?>

Editado por Thyago Henrique
Link para o comentário
Compartilhar em outros sites

  • 0
Mais um erro detectado, era:

if($_POST['produto'] AND $_POST['linha'] = 0))
Coloca:
if($_POST['produto'] AND $_POST['linha'] == 0)
Já foi corrigido isso. O que acontece é que ele não está identificando a variável produto como está no erro que lhe mostrei acima eu depurei o código também bem acima da linha onde está dando a mensagem de erro. Acredito que a variável esteja se perdendo por alí, mas não estou entendendo porque. Veja o que eu fiz...
<?php 
  echo '<pre>';
  print_r($_POST['produto']);
  echo '</pre>';
  die('lalalalala');

  if($_POST['produto'] AND $_POST['linha'] != 0)
  {
    echo "<div id=\"div_teste\" name=\"div_teste\" style=\"border: solid 2px #000; display: none;\">";
      $produto = $_POST['produto'];
      $linha = $_POST['linha'];
      echo "ID Produto: ".$produto."<br>";
      echo "ID Linha: ".$linha;
    echo "</div>";
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0
O $_POST['produto'] está sendo retornado corretamente?

Sim...mas não encontra quando vou selecionar a linha. Acho que por isso tem dois problemas principais que estão acontecendo aqui.

1° Ao selecionar o produto desejado, teria de liberar a 2° combo pra o usuário poder selecionar a linha que deseja.

2° Os dados não estão indo para a div

Vlw

Editado por Thyago Henrique
Link para o comentário
Compartilhar em outros sites

  • 0
Teria problema de você postar todo o código teu aqui?

Esta aí. O código é o mesmo que passei acima mas agora com as alterações que você me passou.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="scripts/estilos.css" rel="stylesheet" type="text/css" media="all" />

&lt;script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
&lt;script type="text/javascript">
    //executando a função para selecionar o produto
    $(document).ready(function(){
        $("select[name=produto]").change(function(){
            $("select[name=linha]").html('<option value="0">Carregando...</option>');
            $.post("linhas.php",
                   {produto:$(this).val()},
                   function(valor){
                       $("select[name=linha]").html(valor);                       
                   })
        })
    })
    
    function chamaformulario(){
        document.getElementById('div_teste').style.display = 'block';
    }
    
    
    function busca_linha()
{
  document.FormMail.linha.value=0;
  document.FormMail.submit();
}
    
    
</script>
</head>
<body>
    <form action="" id="FormMail" name="FormMail" method="post">
        <table width="100%" border="0" cellspacing="3" cellpadding="0">
            <tr>
                <td align="right" width="50%">
                    <div class="margem_produtos">
                    <select name="produto" id="produto" onchange="java script:busca_linha()">
                        <?php
                        echo "<option value=\"0\">Selecione o produto desejado</option>";
                        include ("conecta.php");
                        //selecionando os dados da tabela produtos ordenado por id
                        $sql = "SELECT * FROM produtos ORDER BY id ASC";
                        //Executando o codigo mysql e caso tenha erro sera mostrada uma msg
                        $qr = mysql_query($sql) or die (mysql_error());
                        //Listando os produtos
                        while ($ln = mysql_fetch_assoc($qr))
                        {
                            if($_POST['produto'] AND $_POST['produto'] == $ln['id'])
                            {
                              echo '<option value="'.$ln['id'].'" selected>'.htmlentities($ln['id']." - ".$ln['descricao']).'</option>';
                            }
                            else
                           {
                              echo '<option value="'.$ln['id'].'">'.htmlentities($ln['id']." - ".$ln['descricao']).'</option>';
                            }
                        }
                        ?>
                    </select>
                    </div>
                </td>
                <td align="left" width="50%">
                    <div class="margem_produtos">
                    <select name="linha" id="linha">
                        <?php
                        if(!empty($_POST['produto']) AND ($_POST['linha'] = 0))
                        {
                          //aqui faz a busca da linha de acordo com o especificado no primeiro select
                          //Recuperando a variável estado
    $produto = $_POST['produto'];
        
    //Selecionando dados da tabela cidade ordenado por nome
    $sql = "SELECT l.id, l.linha from grupo_linhas gl INNER JOIN linhas l INNER JOIN produtos p where gl.id=p.grupo_linhas AND gl.id=l.grupo_linhas AND p.id=$produto";
    //Executando o código mysql e caso tenha erro será mostrada uma msg
    $qr = mysql_query($sql) or die (mysql_error());
    
    /*echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    die('morri');*/
    //Verificando se a tabela cidades tem dados cadastrados
    if (mysql_num_rows($qr) == 0){
        echo '<option value="0">Não há linhas para este produto</option>';
    }else{
        echo '<option value="0">Selecione a Linha</option>';
        while ($ln = mysql_fetch_assoc($qr)){
            echo '<option value="'.$ln['id'].'">'.$ln['id']." - ".$ln['linha'].'</option>';
        }
    }
                        }
                        else
                        {
                          echo "<option value=\"0\" disabled=\"disabled\">Selecione o produto</option>";
                        }
                        ?>
                    </select>
                    </div>
                </td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <div class="margem_produtos">
                        <input type="submit" name="btn_buscar" id="btn_buscar" value="Buscar..." class="btnForm" />
                    </div>
                </td>
            </tr>
        </table>
    </form>
    <? 
        /*echo '<pre>';
        print_r(@$_POST);
        echo '</pre>';
        die('lalalalala');*/
            
        if(@$_POST['produto'] AND @$_POST['linha'] != 0)
        {
            $produto = $_POST['produto'];
            $linha = $_POST['linha'];
                            
            echo "ID Produto: ".$produto."<br>";
            echo "ID Linha: ".$linha;
        }
        ?>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0

Teste tirar isso do java script:

$(document).ready(function(){
        $("select[name=produto]").change(function(){
            $("select[name=linha]").html('<option value="0">Carregando...</option>');
            $.post("linhas.php",
                   {produto:$(this).val()},
                   function(valor){
                       $("select[name=linha]").html(valor);                       
                   })
        })
    })

Link para o comentário
Compartilhar em outros sites

  • 0
Teste tirar isso do java script:

$(document).ready(function(){
        $("select[name=produto]").change(function(){
            $("select[name=linha]").html('<option value="0">Carregando...</option>');
            $.post("linhas.php",
                   {produto:$(this).val()},
                   function(valor){
                       $("select[name=linha]").html(valor);                       
                   })
        })
    })

Deu na mesma. Acho que o problema é a variável mesmo que não está recebendo ali.

Link para o comentário
Compartilhar em outros sites

  • 0

Cara esse código meu tá meio bichado mesmo, fiz meio correndo e deu nisso, teste aí:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="scripts/estilos.css" rel="stylesheet" type="text/css" media="all" />

<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
    //executando a função para selecionar o produto    
function busca_linha()
{
  document.FormMail.linha[0].selected=true;
  document.FormMail.submit();
}
</script>
</head>

<body>
    <form action="" id="FormMail" name="FormMail" method="post">
        <table width="100%" border="0" cellspacing="3" cellpadding="0">
            <tr>
                <td align="right" width="50%">
                    <div class="margem_produtos">
                    <select name="produto" id="produto" onchange="java script:busca_linha()">
                        <?php
                        echo "<option value=\"0\">Selecione o produto desejado</option>";
                        include ("conecta.php");
                        //selecionando os dados da tabela produtos ordenado por id
                        $sql = "SELECT * FROM produtos ORDER BY id ASC";
                        //Executando o codigo mysql e caso tenha erro sera mostrada uma msg
                        $qr = mysql_query($sql) or die (mysql_error());
                        //Listando os produtos
                        while ($ln = mysql_fetch_assoc($qr))
                        {
                            if($_POST['produto'] == $ln['id'])
                            {
                              echo '<option value="'.$ln['id'].'" selected>'.htmlentities($ln['id']." - ".$ln['descricao']).'</option>';
                            }
                            else
                            {
                              echo '<option value="'.$ln['id'].'">'.htmlentities($ln['id']." - ".$ln['descricao']).'</option>';
                            }
                        }
                        ?>
                    </select>
                    </div>
                </td>
                <td align="left" width="50%">
                    <div class="margem_produtos">
                    <select name="linha" id="linha">
                        <?php
                        if(!empty($_POST['produto']) AND (empty($_POST['linha']) OR $_POST['linha'] == 0))
                        {
                          //aqui faz a busca da linha de acordo com o especificado no primeiro select
                          //Recuperando a variável estado
    $produto = $_POST['produto'];
        
    //Selecionando dados da tabela cidade ordenado por nome
    $sql = "SELECT l.id, l.linha from grupo_linhas gl INNER JOIN linhas l INNER JOIN produtos p where gl.id=p.grupo_linhas AND gl.id=l.grupo_linhas AND p.id=$produto";
    //Executando o código mysql e caso tenha erro será mostrada uma msg
    $qr = mysql_query($sql) or die (mysql_error());
    
    /*echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    die('morri');*/
    //Verificando se a tabela cidades tem dados cadastrados
    if (mysql_num_rows($qr) == 0){
        echo '<option value="0">Não há linhas para este produto</option>';
    }else{
        echo '<option value="0">Selecione a Linha</option>';
        while ($ln = mysql_fetch_assoc($qr)){
            echo '<option value="'.$ln['id'].'">'.$ln['id']." - ".$ln['linha'].'</option>';
        }
    }
                        }
                        else
                        {
                          echo "<option value=\"0\" disabled=\"disabled\">Selecione o produto</option>";
                        }
                        ?>
                    </select>
                    </div>
                </td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <div class="margem_produtos">
                        <input type="submit" name="btn_buscar" id="btn_buscar" value="Buscar..." class="btnForm" />
                    </div>
                </td>
            </tr>
        </table>
    </form>
    <?
        /*echo '<pre>';
        print_r(@$_POST);
        echo '</pre>';
        die('lalalalala');*/
            
        if(@$_POST['produto'] AND @$_POST['linha'] != 0)
        {
            $produto = $_POST['produto'];
            $linha = $_POST['linha'];
                            
            echo "ID Produto: ".$produto."<br>";
            echo "ID Linha: ".$linha;
        }
        ?>
</body>
</html>

Acho que agora dá.

Link para o comentário
Compartilhar em outros sites

  • 0
Cara esse código meu tá meio bichado mesmo, fiz meio correndo e deu nisso, teste aí:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="scripts/estilos.css" rel="stylesheet" type="text/css" media="all" />

&lt;script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
&lt;script type="text/javascript">
    //executando a função para selecionar o produto    
function busca_linha()
{
  document.FormMail.linha[0].selected=true;
  document.FormMail.submit();
}
</script>
</head>

<body>
    <form action="" id="FormMail" name="FormMail" method="post">
        <table width="100%" border="0" cellspacing="3" cellpadding="0">
            <tr>
                <td align="right" width="50%">
                    <div class="margem_produtos">
                    <select name="produto" id="produto" onchange="java script:busca_linha()">
                        <?php
                        echo "<option value=\"0\">Selecione o produto desejado</option>";
                        include ("conecta.php");
                        //selecionando os dados da tabela produtos ordenado por id
                        $sql = "SELECT * FROM produtos ORDER BY id ASC";
                        //Executando o codigo mysql e caso tenha erro sera mostrada uma msg
                        $qr = mysql_query($sql) or die (mysql_error());
                        //Listando os produtos
                        while ($ln = mysql_fetch_assoc($qr))
                        {
                            if($_POST['produto'] == $ln['id'])
                            {
                              echo '<option value="'.$ln['id'].'" selected>'.htmlentities($ln['id']." - ".$ln['descricao']).'</option>';
                            }
                            else
                            {
                              echo '<option value="'.$ln['id'].'">'.htmlentities($ln['id']." - ".$ln['descricao']).'</option>';
                            }
                        }
                        ?>
                    </select>
                    </div>
                </td>
                <td align="left" width="50%">
                    <div class="margem_produtos">
                    <select name="linha" id="linha">
                        <?php
                        if(!empty($_POST['produto']) AND (empty($_POST['linha']) OR $_POST['linha'] == 0))
                        {
                          //aqui faz a busca da linha de acordo com o especificado no primeiro select
                          //Recuperando a variável estado
    $produto = $_POST['produto'];
        
    //Selecionando dados da tabela cidade ordenado por nome
    $sql = "SELECT l.id, l.linha from grupo_linhas gl INNER JOIN linhas l INNER JOIN produtos p where gl.id=p.grupo_linhas AND gl.id=l.grupo_linhas AND p.id=$produto";
    //Executando o código mysql e caso tenha erro será mostrada uma msg
    $qr = mysql_query($sql) or die (mysql_error());
    
    /*echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    die('morri');*/
    //Verificando se a tabela cidades tem dados cadastrados
    if (mysql_num_rows($qr) == 0){
        echo '<option value="0">Não há linhas para este produto</option>';
    }else{
        echo '<option value="0">Selecione a Linha</option>';
        while ($ln = mysql_fetch_assoc($qr)){
            echo '<option value="'.$ln['id'].'">'.$ln['id']." - ".$ln['linha'].'</option>';
        }
    }
                        }
                        else
                        {
                          echo "<option value=\"0\" disabled=\"disabled\">Selecione o produto</option>";
                        }
                        ?>
                    </select>
                    </div>
                </td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <div class="margem_produtos">
                        <input type="submit" name="btn_buscar" id="btn_buscar" value="Buscar..." class="btnForm" />
                    </div>
                </td>
            </tr>
        </table>
    </form>
    <?
        /*echo '<pre>';
        print_r(@$_POST);
        echo '</pre>';
        die('lalalalala');*/
            
        if(@$_POST['produto'] AND @$_POST['linha'] != 0)
        {
            $produto = $_POST['produto'];
            $linha = $_POST['linha'];
                            
            echo "ID Produto: ".$produto."<br>";
            echo "ID Linha: ".$linha;
        }
        ?>
</body>
</html>

Acho que agora dá.

beleza...mas ainda não está funcionando corretamente. Primeiro eu preciso estar selecionando o produto, clicar em buscar pra aparecer as linhas. A idéia é que a linha apareça sem precisar do botão. E quando seleciono a linha, e clico novamente em buscar ele some da combo a linha que eu selecionei. Mas isso beleza. O maior problema é ter de clicar em buscar antes de selecionar a linha. Vou tentar alguma coisa aqui e se conseguir posto aqui. Se souber o que é também, por favor me ajude..rs...

Vlw pela ajuda ae.

Abs

Link para o comentário
Compartilhar em outros sites

  • 0

Tente agora:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="scripts/estilos.css" rel="stylesheet" type="text/css" media="all" />

&lt;script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
&lt;script type="text/javascript">
    //executando a função para selecionar o produto    
function busca_linha()
{
  document.FormMail.linha[0].selected=true;
  document.FormMail.submit();
}
</script>
</head>

<body>
    <form action="" id="FormMail" name="FormMail" method="post">
        <table width="100%" border="0" cellspacing="3" cellpadding="0">
            <tr>
                <td align="right" width="50%">
                    <div class="margem_produtos">
                    <select name="produto" id="produto" onchange="busca_linha()">
                        <?php
                        echo "<option value=\"0\">Selecione o produto desejado</option>";
                        include ("conecta.php");
                        //selecionando os dados da tabela produtos ordenado por id
                        $sql = "SELECT * FROM produtos ORDER BY id ASC";
                        //Executando o codigo mysql e caso tenha erro sera mostrada uma msg
                        $qr = mysql_query($sql) or die (mysql_error());
                        //Listando os produtos
                        while ($ln = mysql_fetch_assoc($qr))
                        {
                            if($_POST['produto'] == $ln['id'])
                            {
                              echo '<option value="'.$ln['id'].'" selected>'.htmlentities($ln['id']." - ".$ln['descricao']).'</option>';
                            }
                            else
                            {
                              echo '<option value="'.$ln['id'].'">'.htmlentities($ln['id']." - ".$ln['descricao']).'</option>';
                            }
                        }
                        ?>
                    </select>
                    </div>
                </td>
                <td align="left" width="50%">
                    <div class="margem_produtos">
                    <select name="linha" id="linha" disabled>
                        <?php
                        if(!empty($_POST['produto']) AND (empty($_POST['linha']) OR $_POST['linha'] == 0))
                        {
                          //habilita o select
                          echo "<script type=\"text/javascript\">document.FormMail.linha.disabled=false;</scrit>";
                          //aqui faz a busca da linha de acordo com o especificado no primeiro select
                          //Recuperando a variável estado
    $produto = $_POST['produto'];
        
    //Selecionando dados da tabela cidade ordenado por nome
    $sql = "SELECT l.id, l.linha from grupo_linhas gl INNER JOIN linhas l INNER JOIN produtos p where gl.id=p.grupo_linhas AND gl.id=l.grupo_linhas AND p.id=$produto";
    //Executando o código mysql e caso tenha erro será mostrada uma msg
    $qr = mysql_query($sql) or die (mysql_error());
    
    /*echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    die('morri');*/
    //Verificando se a tabela cidades tem dados cadastrados
    if (mysql_num_rows($qr) == 0){
        echo '<option value="0">Não há linhas para este produto</option>';
    }else{
        echo '<option value="0">Selecione a Linha</option>';
        while ($ln = mysql_fetch_assoc($qr)){
            echo '<option value="'.$ln['id'].'">'.$ln['id']." - ".$ln['linha'].'</option>';
        }
    }
                        }
                        else
                        {
                          echo "<option value=\"0\">Selecione o produto</option>";
                        }
                        ?>
                    </select>
                    </div>
                </td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <div class="margem_produtos">
                        <input type="submit" name="btn_buscar" id="btn_buscar" value="Buscar..." class="btnForm" />
                    </div>
                </td>
            </tr>
        </table>
    </form>
    <?
        /*echo '<pre>';
        print_r(@$_POST);
        echo '</pre>';
        die('lalalalala');*/
            
        if(@$_POST['produto'] AND @$_POST['linha'] != 0)
        {
            $produto = $_POST['produto'];
            $linha = $_POST['linha'];
                            
            echo "ID Produto: ".$produto."<br>";
            echo "ID Linha: ".$linha;
        }
        ?>
</body>
</html>

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,8k
×
×
  • Criar Novo...