Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ao selecionar o produto gostaria de exibir o valor, peguei um exemplo de javascript porém quando seleciono a opção ele exibe o id, quando altero o id por o valor aparece o valor corretamente, porém não consigo fazer o insert no banco pois ele não tem mais a referencia do id.
<div class="form-group">
<label class="col-md-4 control-label" for="txtgrupo">Produto/Serviço : </label>
<div class="col-md-4">
<select name="produto" id = "mySelect" class="form-control" onchange="myFunction()">
<option>Selecione Produto</option>
<?php
$query = mysql_query("SELECT * FROM produtos");
while($result = mysql_fetch_array($query))
{
echo '<option value="'.$result["id"].'">'.$result["descricao"].'</option>';
}
?>
</select>
</div>
</div>
<div class="col-md-4">
<strong><p id="demo"></p></strong>
</div>
<script>
function myFunction() {
var valor = document.getElementById("mySelect").value;
document.getElementById("demo").innerHTML = " Valor: " + valor;
}
</script>Ja, assim funciona, porem eu criei uma tabela no banco chamada vendas nela eu insiro o idvenda chave primária, idproduto, idusuário, idcliente chaves estrangeiras quando faço essa alteração no codigo não consigo gravar as informações no banco.
@Rudgieri Santos posta sua tabela tbm
Da forma q está aparece o id quando seleciono o item, desta forma consigo gravar as informações para o banco mais se coloco o value do select como valor nao insere os dados.
tabela vendas.
Você pode usar jQuery + AJAX se quiser:
<div class="form-group">
<label class="col-md-4 control-label" for="txtgrupo">Produto/Serviço : </label>
<div class="col-md-4">
<select name="produto" id = "mySelect" class="form-control">
<option>Selecione Produto</option>
<?php
$query = mysql_query("SELECT * FROM produtos");
while($result = mysql_fetch_array($query))
{
echo '<option value="'.$result["id"].'">'.$result["descricao"].'</option>';
}
?>
</select>
</div>
</div>
<div class="col-md-4">
<strong><p id="demo"></p></strong>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
$("#mySelect").on("change", function(){
var id = $(this).val();
$.ajax({
url:"pegarValor.php",
method:"POST",
data:{id:id},
dataType:"text",
success: function(ret){
$("#demo").html(ret);
}
});
});
</script>
Desse modo smepre que você alterar o item no select o ajax vai enviar o id para o arquivo "pegarValor.php", o arquivo vai buscar o valor do item e vai retornar ele para a div #demo
pegarValor.php:
if(isset($_POST['id'])){
$id = $_POST['id'];
$connect = mysqli_connect("localhost", "root", "", "db_loja");
$query = "SELECT valor FROM produtos WHERE id = ".$id;
$exec = mysqli_query($connect, $query);
$result = mysqli_fetch_array($exec);
echo $result['valor'];
}@JulinhoooO Só uma duvida, no value do option onde esta id tenho que colocar descricao para gravar a descrição do produto no banco de dados, se deixo id no banco de dados ele grava na coluna descricao_produto o id do produto.
Outra dúvida, consigo capturar o valor do produto e inserir no banco de dados?
Você precisa antes de inserir pegar todos o dados que quer inserir referente ao id
Ex:
$connect = mysqli_connect("localhost", "root", "", "db_loja");
//Busca os dados do produto
$querySelect = "SELECT descricao, valor FROM produtos WHERE id = ".$id;
$execSelect = mysqli_query($connect, $querySelect);
$result = mysqli_fetch_array($execSelect);
$descricao = $result['descricao'];//Insere na tabela vendas os dados do produto, junto com cliente e vendedor
$queryInsert = "INSERT INTO vendas(descricao_cliente, descricao_vendedor, descricao_produto, valor) VALUES ('Cliente', 'Vendedor', $descricao, $valor)";
$execInsert = mysqli_query($connect, $queryInsert);@JulinhoooO Deu Certo! Obrigado
Se foi o que eu pude entender o que você esta querendo, já tentou assim?