Ir para conteúdo

POWERED BY:

Arquivado

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

mruoppolo

Pegar valor de select quando houver change

Recommended Posts

Galera tudo bem??

 

Eu tenho aqui um código que pega o valor de uma input no onchange, como eu programo para ele pegar o valor de uma select quando houver mudança de option:

$(document).ready(function(){
	// monitorando o evento change dos campos
    $('#produto input').bind('change',function(){
	// enviando os valores atuais dos campos ao PHP
	$.post('calculo.php',{
		// serializando o formulario
	    dataForm: $("#produto").serialize()
	},
	function(data){
		// obtendo o retorno do PHP / atualizando o valor
	    $('#total').html(data)
		// informando o total ao campo hidden 
		// sera utilizado ao submeter o form
	    $('#total_compra').val(data)
	})
    })
	
    // realiza o calculo no inicio ou após um refresh
    $.post('calculo.php',{
		dataForm: $("#produto").serialize()
    },
    function(data){
		$('#total').html(data)
		$('#total_compra').val(data)
    })
})

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só acrescentar ao selector ":" (dois-pontos) antes do input para todos os elementos input, textarea, select e button

$('#produto :input').bind('change',function(){ ...

leia mais em :input Selector

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, não funcionou nenhum dos 2 :(

 

É um formulário com varios dados de peças de computadores que deve servir como um carrinho de compras ai a pessoa seleciona numa select a peça que deseja e o ajax ja faz o calculo somando com as outras peças adicionadas ao carrinho e retorna o valor, olha só: http://www.pointdopc.com.br/monte-seu-pc-3

 

Os dois não funcionaram :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

no link que vc postou não tem o código acima

 

e se vc abrir o console (Ctrl + Shift + J) ao selecionar uma opção nos select verá que está faltando a função "calculaValor()"

Compartilhar este post


Link para o post
Compartilhar em outros sites

então... no link http://www.pointdopc.com.br/monte-seu-pc-3/

NÃO TEM o código que vc postou, como espera que funcione?

$(document).ready(function(){
	// monitorando o evento change dos campos
    $('#produto :input').bind('change',function(){
....

veja uma http://jsfiddle.net/uLcLtnhu/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente, eu havia retirado a inserção do script, porém ele não retorna o valor do calculo, eu estou programando desde as 7 da manhã, pior que é pra amanhã cedo ainda tem um monte de coisas pra fazer, ja estou errando por besteira :/

 

Mas eu sei que funcionou uma parte, pois agora esta aparecendo o 0,00 no local do preço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É que na verdade esse código não é meu, to arrumando um código que fui contratado hoje pra mexer, mas é pra amanhã

<?php

require_once('includes/config.php'); 

#loop para associar valores

// se o número de resultados for maior que zero, mostra os dados
if($total > 0) { 

// inicia o loop que vai mostrar todos os dados do
{ ?>

<?php 

//contagem
$conta = 1;

// finaliza o loop que vai mostrar os dados
}
while($linha = mysql_fetch_assoc($dados)) { 

$valor[$linha['productid']] = $linha['prodprice'];

// fim do if
} }

#fiim do loop manual

# valor total inicial = 0
$total = 0;

# passando os dados do form para um array
$params = array();
parse_str($_POST['dataForm'], $params);

# calculando o valor dos produtos e somando ao total
foreach($params as $item => $value)
{
    if(isset($valor[$item]) && !empty($item))
	$total += $valor[$item] * $value;
}
# retornando o total calculado e formatado BRL
echo number_format($total,2, ',', '.');

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente o seguinte...

no seu HTML troque em todos os SELECT

// ISSO
<select name="product_id" id="product_id" class="botaoexibir">

// POR ISSO
<select name="product_id[]" class="product_id" class="botaoexibir">

e no arquivo calculo.php troque o conteúdo por este

<?php
require_once('includes/config.php'); 

if (isset($_POST['dataForm'])){

parse_str($_POST['dataForm']);

$total = 0;
$product_id = array_filter($product_id);

if (sizeof($product_id)){
  // a soma dos itens é feita direto na query
  $sql = mysql_query("SELECT SUM(prodprice) AS calculo FROM tabela 
  WHERE product_id IN(".implode(", ", $product_id).")") or die (mysql_error());
  
  while ($row = mysql_fetch_assoc($sql)){
    $total += $row['calculo'];
  }
}

echo number_format($total, 2, ',', '.');

}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara funcionou!!! De verdade cara muito obrigado, você acaba de salvar algumas das minhas horas de sono, muito obrigado mesmo de coração, espero pode retribuir algum dia ;)

 

Abraço

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.