How to display a result using 2 selects

0

I have two tables, Products and Orders.

I need to create a combobox for products and when the user chooses a product, the page has to display all requests related to the product, if I choose another product have to change the requests.

I'm thinking of using a Select from the product table to generate the products and then pick up the selected product id and make a select with the Orders table.

Eg:

Produto: Detergente          
 button: Gerar relatório

Pedido|Quantidade

0123  | 2 und

0258  | 100 und

Code below:

Produto:<SELECT NAME="produto"  required="1" onchange="geratabela()">
            <option>Selecione...</option>
            <?php
            $conexao = mysql_connect("localhost","root","usbw");
            if (!$conexao) die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error()); 
            mysql_select_db('Varejo', $conexao);
            $query1 = "SELECT * FROM produto ORDER BY cod_prod, nome ASC";
            $q1 = mysql_query($query1);
            while($dados = mysql_fetch_array($q1))
            {   
            ?>
             <option value="<?=$dados['cod_prod'] ?>">
            <?=$dados['nome'] ?>
            </option>
            <?php
                }
                ?>

                </SELECT><br><br>

        <?      
                function geratabela() {

                 ini_set( 'display_errors', true );
                error_reporting( E_ALL );
                $conexao = mysql_connect("localhost","root","usbw");
                if (!$conexao) die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error()); 
                mysql_select_db('Varejo', $conexao);
                $cod_prod = $_GET["cod_prod"];
                $sql = "SELECT * FROM pedido where cod_prod=$cod_prod";
                $q = mysql_query($sql);
                //tabela com os dados


                }
                ?>
    
asked by anonymous 14.06.2016 / 17:48

1 answer

2

In case you are trying to call a PHP method that is "server side" with javascript that is "client side" in that case.

Ideally, make another file to handle your AJAX request, for example:

//fiz alterações para usar o PDO do php 

see reason here

//aqui vamos verificar se seu parametro foi passado
if(!isset($_POST["cod_prod"]){
    echo '';
    exit;
}
ini_set( 'display_errors', true );
error_reporting( E_ALL );
$dsn = "mysql:host=localhost;dbname=Varejo;charset=utf8";
$conexao = new PDO($dsn, 'root', 'usbw');    
$cod_prod[] = $_POST["cod_prod"]; // o ideal aqui é sanitizar os dados para não ter problema de segurança
$stmt = $pdo->prepare('SELECT * FROM pedido where cod_prod= ?');
$stmt->execute($cod_prod);
$ret = "<ul>"; // aqui vamos começar montar o html de retorno
foreach($stmt->fetchAll() as $value){
   $ret .= "<li>$value</li>";
}
$ret .= "</ul>";
echo $ret;

your html would look like this let's call the file from above. php

example ajax:

<javascript>
function getPedidos(valor){
$.ajax({
method: "POST",
  url: "pedidos.php",
  data: { cod_prod: valor }
})
  .done(function( data ) {
    //faz algo com o valor retornado
  });
}

I recommend using JQuery

    
14.06.2016 / 20:42