Jump to content
Sign in to follow this  
NadoLoko

Ajuda para buscar dados do banco conforme Select option selecionado

Recommended Posts

Galera sou novato em linguagem web e gostaria de uma ajuda, depois de muito quebrar a cabeça. Tenho um banco de dados com uma tabela de categorias e outra de alimentos. Na minha index tenho um <select> e uma <div>. Quando inicializo a pagina, o select é carregado com todas as categorias do banco. O tenho que fazer, e nao estou conseguindo, é que, ao selecionar uma determinada categoria, a div sera carregada com os elementos daquela categoria, se eu selecionar outra categoria no select, os elementos da div mudam para os elementos da nova categoria selecionada e assim sucessivamente. Consigo pegar o valor selecionado com jQuery mas nao consigo passar e chamar a função no meu arquivo php, muito menos tornar isso dinâmico. Preciso de alguma ideia, de açgum caminho que devo seguir.

Share this post


Link to post
Share on other sites

Tenta esse código abaixo.

Ai eh só editar a pagina de busca para ele print o que você quer.

<script>

//função para pegar o objeto ajax do navegador
function xmlhttp()
{
	// XMLHttpRequest para firefox e outros navegadores
	if (window.XMLHttpRequest)
	{
		return new XMLHttpRequest();
	}

	// ActiveXObject para navegadores microsoft
	var versao = ['Microsoft.XMLHttp', 'Msxml2.XMLHttp', 'Msxml2.XMLHttp.6.0', 'Msxml2.XMLHttp.5.0', 'Msxml2.XMLHttp.4.0', 'Msxml2.XMLHttp.3.0','Msxml2.DOMDocument.3.0'];
	for (var i = 0; i < versao.length; i++)
	{
		try
		{
			return new ActiveXObject(versao[i]);
		}
		catch(e)
		{
			alert("Seu navegador não possui recursos para o uso do AJAX!");
		}
	} // fecha for
	return null;
} // fecha função xmlhttp

//função para fazer a requisição da página que efetuará a consulta no DB
function carregar()
{
   a = document.getElementById('ID_DO_SELECT').value;
   ajax = xmlhttp();
   if (ajax)
   {
	   ajax.open('get','CAMINHO_DO_DOCUMENTO_BUSCA?NOME_DO_SELECT='+a, true);
	   ajax.onreadystatechange = trazconteudo; 
	   ajax.send(null);
   }
}

//função para incluir o conteúdo na pagina
function trazconteudo()
{
	if (ajax.readyState==4)
	{
		if (ajax.status==200)
		{
			document.getElementById('ID_DA_DIV').innerHTML = ajax.responseText;
		}
	}
}

</script>

Share this post


Link to post
Share on other sites

Marlon255 valeu pela ajuda. Depois de ver sua resposta fui procurar saber como funcionava e encontrei uma forma de fazer utilizando $.ajax. Tecnicamente nao cheguei a testar seu codigo, mas através dele tive o caminho que deveria procurar. Mais uma vez, valeu.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By Keber_Crato
      Boa noite galera!!  estou com dificuldades em conseguir o somatório de de dois campos de uma tabela e o somatório de um campo de outra tabela,
      segue assim:
      Tenho uma tabela chamada CID_TITULAR  e outra CID_COMPOSICAO. a tabela CID_TITULAR recebe os cadastro de um programa social e a tabela CID_COMPOSICAO o cadastros dos dependentes (filhos, parentes) TITULAR_COD = COMPOSICAO_COD_TITULAR (chave de ligação)
      tenho dois campos na CID_TITULAR de valores, são eles: TITULAR_RENDA e TITULAR_RENDA_MENSAL e na outra tabela CID_COMPOSICAO tenho um campo de valor COMPOSICAO_RENDA
      estão povoado assim:
       
      Na tabela CID_TITULAR nos campos TITULAR_RENDA (R$ 10.00) e TITULAR_RENDA_MENSAL (R$ 10.00) e na tabela CID_COMPOSICAO no campo COMPOSICAO_RENDA tenho 3 registros com os valores R$ 300.00, R$ 200.00 e R$ 100.00
      GOSTARIA QUE A SELEÇÃO FOSSE O VALOR DOS DOIS CAMPOS DA TABELA CID_TITULAR + O CAMPO DA OUTRA TABELA CID_COMPOSICAO
       
      NO CASO O SOMATÓRIO CORRETO SERIA R$ 620,00
      10,00 no campo TITULAR_RENDA
      10,00 no campo TITULAR_RENDA_MENSAL
      300,00 NO 1º REGISTRO no campo COMPOSICAO_RENDA
      200,00 NO 2º REGISTRO no campo COMPOSICAO_RENDA
      100,00 NO 3º REGISTRO no campo COMPOSICAO_RENDA
       
      TOTALIZANDO R$ 620,00
      O PROBLEMA É:
      Quando faço a seleção com inner join a resposta é R$ 660,00 e não 620,00. a seleção triplica o valor da primeira tabela devido ter três registros na tabela CID_COMPOSICAO
       
      TABELA CID_TITULAR
      CREATE TABLE `cid_titular` (
        `titular_cod` int(11) NOT NULL AUTO_INCREMENT,
        `titular_renda` float(10,2) DEFAULT NULL,
        `titular_renda_mensal` float(10,2) DEFAULT NULL,
        PRIMARY KEY (`titular_cod`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
       
      TABELA CID_COMPOSICAO
      CREATE TABLE `cid_composicao` (
        `composicao_cod` int(11) NOT NULL AUTO_INCREMENT,
        `composicao_cod_titular` int(11) DEFAULT NULL,
        `composicao_renda` float(10,2) DEFAULT NULL,
        PRIMARY KEY (`composicao_cod`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
       
       
      GOSTARIA MUITO DE AJUDA GALERA. OBRIGADO!!!!
       

    • By MEGATRON
      Crie um código em JavaScript que receba 2 palavras, e depois as imprima
      intercaladas. Ex.: “Joao” e “Mary”; a impressão deve ser: “JMoaaroy”. Use uma função
      que receba as duas palavras, e faça a intercalação.
    • By Alyss
      Olá!
       
      Esotu com uma certa dificuldade em um projeto que estou desenvolvendo em relação a funcionalidade drag and drop com jQuery/JavaScript.
       
      <div class="pricipal-menu"> <div class="col-1"> <img src="imagem/1.png"> <img src="imagem/2.png"> <img src="imagem/3.png"> </div> <div class="col-2"> <img src="imagem/1.png"> <img src="imagem/2.png"> <img src="imagem/3.png"> </div> <div class="col-3"> <img src="imagem/1.png"> <img src="imagem/2.png"> <img src="imagem/3.png"> </div> <div class="col-4"> <img src="imagem/1.png"> <img src="imagem/2.png"> <img src="imagem/3.png"> </div> </div> Bom, o que quero fazer é, por exemplo, pegar a img1 da primeira coluna (1, 1) e passá-la para a coluna 2 na posição da img2  (2,2). Até ai tudo bem, o problema é , preciso que quando a img1 for colocada na posição (2,2) a img2 que está na vá para (1,1). Exatamente como um $(...).sortable(), aliás, já tentei até mesmo com o connectWith do sortable(), mas não adianntou muito.
       
      Mais resumidamente, é fazer com que as imagens invertam a posição entre as colunas, mas não sei como.
       
      OBS: já tentei, inclusíve, colocá-las em variáveis pra depois assumirem as posições com o drag'n drop, mas cheguei no mesmo resultado  do connectWith.
       
      Agradeço a atenção!
       
       
    • By malufla79
      Boa tarde, estou com probleminha no phpmailer, o código abaixo funciona corretamente quando consigo enviar para um único e-mail, mas quando coloco a opção todos, ele só manda apenas para primeiro e-mail e não apresenta nenhum erro. Poderia me dar uma ajudinha? Obrigada
       
      Controle
      if ($_POST['filtro'] == 'todos') { // essa consulta pego a lista de e-mails cadastrado no meu banco de dados $usuarios->consultar("select * from mala_email"); $linha = $usuarios->Linha; $rs = $usuarios->Result; } if ($_POST['filtro'] == 'todos') { for ($i=0; $i<$linha; $i++) { $email = $rs[$i]['email']; $mensagem = $_POST['editor']; $util->EnviarEmaiLivre($email, utf8_decode($_POST['assunto']), $mensagem); } } else { $mensagem = $_POST['editor']; $util->EnviarEmaiLivre($_POST['email'], utf8_decode($_POST['assunto']), $mensagem); } Função
      function EnviarEmaiLivre($email, $assunto, $mensagem) { date_default_timezone_set('Etc/UTC'); require 'phpmailer/PHPMailerAutoload.php'; $hostSmtp = "mail.domino.com.br"; $smtpUser = "email@email.com.br"; $senhaSmtp = "********"; $mensagem = ' <p><img src="http://www.dominio.com.br/images/logodolugar.png" alt="Logo do Lugar" width="550"></p> '.$mensagem; //Create a new PHPMailer instance $mail = new PHPMailer; //Tell PHPMailer to use SMTP $mail->isSMTP(); //Enable SMTP debugging // 0 = off (for production use) // 1 = client messages // 2 = client and server messages $mail->SMTPDebug = 0; //Ask for HTML-friendly debug output $mail->Debugoutput = 'html'; //Set the hostname of the mail server $mail->Host = $hostSmtp; // use // if your network does not support SMTP over IPv6 //Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission $mail->Port = 587; //Set the encryption system to use - ssl (deprecated) or tls $mail->SMTPSecure = 'tsl'; //Whether to use SMTP authentication $mail->SMTPAuth = true; //Username to use for SMTP authentication - use full email address for gmail $mail->Username = $smtpUser; //Password to use for SMTP authentication $mail->Password = $senhaSmtp; //Set who the message is to be sent from $mail->setFrom('email@email.com.br', 'E-mail do Lugar'); //Set who the message is to be sent to $mail->addAddress($email); //Set the subject line $mail->Subject = $assunto; //Replace the plain text body with one created manually $mail->Body = $mensagem; $mail->isHTML(true); if ($conteudoArquivo != '' && $arquivo != '') { //Attach an image file $mail->addAttachment('phpmailer/images/phpmailer_mini.png'); //Read an HTML message body from an external file, convert referenced images to embedded, //convert HTML into a basic plain-text alternative body $mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); } if (!$mail->send()) { $retorno = false; } else { $retorno = true; } }  
       
    • By Leandro Volanick
      Boa tarde pessoal.
       
      Gostaria de uma ajuda em uma consulta sql, onde quero agrupar os todos produtos comprados pelo mesmo CPF, dentro de uma array. 
       
      Segue o que estou usando:
      $data=mysqli_query($mysqli, "SELECT xml.id, xml.xProd as produto, prod.id as iddoproduto, GROUP_CONCAT( prod.xProd ) FROM produtos AS prod LEFT JOIN xml as xml ON xml.xProd = prod.xProd GROUP BY xml.CPFdest"); while($info=mysqli_fetch_array($data)) echo '['.$info['iddoproduto'].'],'; No momento, o codigo está trazendo apenas 1 produto, quero que ele printe todos produtos que o CPFdest já comprou.
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.