Ir para conteúdo

POWERED BY:

Arquivado

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

Abbel_junior

consultar BD com SELECT

Recommended Posts

Olá pessoal ....

 

Não sou muito bom em PHP, gostaria de um auxilio, estou desenvolvendo uma página e preciso consultar o BD Mysql apartir do <SELECT> do FORM, e o resultado dessa consulta fosse apresentado no <INPUT TYPE=TEXT> do mesmo FORM, sem reload.

 

ex:

<form>

<select>

<option value="#">Selecione o modelo</option>

<option value="1">fiat uno mille 2008</option>

<option value="2">corsa classic 2005</option>

<option value="4">fiat palio 2001</option>

<option value="3">belina 84</option>

<option value="5">fusca 89</option>

</select>

 

<input name="valor_veiculo" type="text" id="valor_veiculo" size="15" maxlength="50" readonly/>

</form>

 

A intenção é: seleciona-se um veiculo e se obtem como resultado o valor ....

 

Porém , há um script.js que vem pegar atravez do ID deste <Input> o valor... para fazer o cáuculo do financiamento.

 

Gostaria de saber se o que estou imaginando é possivel e/ou se alguém conhece algum script mais tranquilo para se trabalhar.

 

Desde ja agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem reload???

 

Só com ajax...

 

Basicamente, o que você tem a fazer é carregar uma página que faça a consulta com o banco de dados via Ajax e mostrar esse resultado no input...

 

Funções JS:

var xmlHttp;

function Cria_XmlHttpObject(){

	var xmlHttp = null;
	
	//cria o objeto XMLHttpRequest pra firefox, mozila, opera, etc
	try {
		xmlHttp = new XMLHttpRequest();
	} 
	
	//cria o objeto XMLHttpRequest pra internet explorer, 6,0 + e posteriormente para internet explorer
	catch (e) {
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		
		catch (e) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	
	return xmlHttp;
}

function carregaValor(carro){
	if(carro != "#"){
	xmlHttp = Cria_XmlHttpObject();
	
	if (xmlHttp == null) {
		alert('O seu Broswer n�o suporta AJAX!');
		return;
	}
	
	var objetoHTML = document.getElementById("ID DE UM ELEMENTO ONDE VAI SER CARREGADA A PÁGINA");
	
	objetoHTML.innerHTML = "<div id='carregando'>Carregando...</div>" + objetoHTML.innerHTML;
		
	var pagina = "PAGINA QUE VAI FAZER A BUSCA"+"?carro="+carro;
	xmlHttp.open("GET", pagina, true);
	
	
	xmlHttp.onreadystatechange = function(){
		if (xmlHttp.readyState == 4) {
			if (xmlHttp.status == 200) {
				objetoHTML.innerHTML = xmlHttp.responseText;
			}
			else 
				if (xmlHttp.status == 404) {
					objetoHTML.innerHTML = "<div>P�gina n�o encontrada.</div>";
				}
		}
	}
	
	
	xmlHttp.send(null);
	}
}

No HTML faça:

 

<select name="tal" id="tal" onchange="carregaValor(this.vaule)">...

crie a página PHP que faz a busca e mostra o resultado no input e mude no ajax lá o nome da página...

 

att,

Rick

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rick.... Brigadão mesmo,

 

Agora , to meio atolado na pag.PHP que faz a consulta , pois sou leigo em PHP, Você poderia me ajudar tbm nessa parte ??

gostaria de saber tbm se preciso de duas tabelas no BD, uma para modelo e outra para valor .....

Reitero agradecimentos ......

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alaerte .... Obrigado pela atenção.

 

Mas teria a possibilidade de você me explicar essa situação , pq num mando nada em php.

Talvez você tenha algum script pra postar ou conhece algum tuto, pois estou a pesquizar aki

mas to de vagar...

 

at

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, vamos lá.

 

 

Veja essa linha do AJAX:

 

var pagina = "PAGINA QUE VAI FAZER A BUSCA"+"?carro="+carro;

Veja que sua variável que irá receber o valor do request é a variável "carro"

?carro=valor

PAGINA QUE VAI FAZER A BUSCA

 

exemplo:

 

var pagina = "busca.php?"+"carro="+carro;

na página busca.php teriamos o seguinte código:

 

busca.php

 

<?php

//Verificamos se o método de envio é requisitado via GET, se sim, ele roda o resto do script.

if($_SERVER['REQUEST_METHOD']=='GET')
{
		 // Conexão com a base de dados.
		 
		 $con = mysql_connect('localhost','usuario','senha')or die('Verifique o usuário e senha estão corretos. '.mysql_error());
		 ($con) ? mysql_select_db('noma do db',$con):false;

	 // Caso a variável $_GET['carro'] tenha valor, a outra variável $valor receberá o seu valor, caso contrário receberá o valor de " 0 " false.

	 $valor	   = isset($_GET['carro']) ? $_GET['carro'] : false;

	 /* Se a variável valor for diferente de 0 (false), então ele executa a query, atribuindo o valor 1 (true) a variável $resultado, caso a busca tenha sucesso. */

	 $resultado = ($valor != false) ? mysql_query("SELECT * FROM tabela WHERE campo LIKE '%".$valor."%'") : false;

	 // Verificamos se a busca obteve resultados, se sim, ele executa o loop para pegar os dados obtidos.

	 if(mysql_num_rows($resultado) > 0)
	 {
		   while($linha = mysql_fetch_array($resultado))
		  {
				 echo $linha['campo'].'<br>';
		  }

	 // Limpamos a memória do servidor mysql.
	 mysql_free_result($resultado);

	 }else{

	 // Caso a busca não obtenha resultados, damos a menssagem de erro e destruímos as variáveis usadas.
	 
	 echo 'Sua Busca não obteve resultados.';

	 unset($resultado); unset($valor);

	 }

}else{
	
	// Caso o modo de requisição seja diferente do GET, indicamos requisição inválida e paramos o script.
	die('Requisição inválida.');
}
?>

Espero que tenha entendido, expliquei todo o código.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alaerte, valew mesmo pela força ....

 

Só mais um detalhe. "desculpe a ignorância", pelo que entendi , no script você seleciona apenas uma tabela valor para o BD

 

$resultado = ($valor != false) ? mysql_query("SELECT * FROM tabela WHERE campo LIKE '%".$valor."%'") : false;

 

e nesse ponto eu me perdi, pois seguindo a lógica, para cada modelo selecionado se espera o valor relacionado akele modelo especificamente.

EX ( seleciono Uno MIlle e o resultado é R$ 15.500,00..... Seleciono Vectra e o resultado é R$ 28.800,00 e etc...).

 

Peço gentilmente que de mais uma luz pra eu continuar aki...

 

Forte abraço ... e Obrigado !!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, Alaerte ...

 

Preciso de buscar no BD apenas o valor do veículo selecionado.

Neste caso é que não sei ... como proceder , se crio apenas uma tabela "valor" conforme a sua indicação , ou se é preciso criar uma tabela , para modelo e outra para o valor do modelo....

 

vou explicar +/- : ( ao selecionar no select o modelo, logo abaxo irá aparecer o valor do modelo em que selecionei ).

 

Essa ideia tem como fonte o site abaixo ....

 

visite: http://www.motoscarton.com.br/financiamento.php

 

 

Obrigado !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se cada modelo vai ter só um valor, não é necessario criar outra tabela...

 

Caso tenha mais de um valor, aí sim, crie as tabelas e relacionetas atraves de uma foreign key...

 

Não sou muito bom nessa parte, procure por foreign key MySQL no google ou vá aqui no forum de MySQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mecanismo desse site que você mandou nem funciona :s...

 

ctza que quer fazer igual???

 

ashuashsuhasuhsuhauahs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mude a query de :

 

$resultado = ($valor != false) ? mysql_query("SELECT * FROM tabela WHERE campo LIKE '%".$valor."%'") : false;

para:

 

$resultado = ($valor != false) ? mysql_query("SELECT * FROM tabela WHERE campo = '$valor''") : false;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal,

 

Infelismente eu não estou conseguindo fazer funcionar o sistema de simulação de financiamento...

A inspiração veio desse site , http://www.motoscarton.com.br/financiamento.php.

Não sei quaze nada de PHP, mas estou precisando muito fazer alguma coisa igual ao exemplo citado acima,

gostaria de saber se alguém sabe de algum script que possa funcionar conforme o exemplo, pois tenho pesquizado

e tentado varias coisas aki e sem sucesso.

 

Agradeço a todos que estão tentando me ajudar ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal estou bem proximo de resolver esse detalhe do Select... mas peço gentilmente mais uma força , pois ja ta pra mais de uma semana que estou a tentar solucionar..

Se trata de um select dinâmico igual ao desse site : www.motoscarton.com.br/financiamento.php .

 

Depois de varias pesquisas cheguei a esse script:

 

FINANCIAMENTO.PHP

 

<br />

<?php

$id = $_GET["id"];

?>

<script type="text/javascript">

function getStates(what) {

if (what.selectedIndex != '') {

var id = what.value;

 

document.location=('financiamento.php?id=' + id);

}

}

</script>

 

<br />

<form >

<label for="nome" id="lnome">

<span style="margin-left:10px">Modelo :</span>

 

<?php

/*include "conecta_bd.php"; // Conecta ao banco de dados*/

include "conecta_bd_local.php"; // Conecta ao banco de dados local

 

if($id) {

$SQL = 'SELECT money FROM valor WHERE id= "$id"';

 

$result_id = mysql_query($SQL) or die(mysql_error());

$linha=mysql_fetch_array($result_id);

?>

 

<select name="modelo" id="modelo" class="select_3" onChange="getStates(this);">

<option value='0'>selecione:</option>

<option value='25'>Biz 125 +</option>

<option value='144'>BIZ 125ie ES</option>

<option value='143'>BIZ 125ie KS</option>

<option value='79'>CB 1300 Super Four</option>

<option value='145'>CB 1300 Super Four ABS</option>

<option value='21'>CB 600F Hornet</option>

<option value='142'>CB 600F Hornet ABS</option>

<option value='23'>CBR 1000 RR</option>

<option value='22'>CBR 600 RR</option>

<option value='17'>CBX 250 Twister</option>

<option value='150'>CG 125 FAN ES</option>

<option value='149'>CG 125 FAN KS</option>

<option value='10'>CG 150 Job</option>

<option value='147'>CG 150 Titan ES - 2009</option>

<option value='148'>CG 150 Titan ESD - 2009</option>

<option value='146'>CG 150 Titan KS - 2009</option>

<option value='72'>CRF 230F</option>

<option value='26'>GL1800 Gold Wing</option>

<option value='19'>NX4 Falcon</option>

<option value='15'>NXR 150 Bros ES</option>

<option value='13'>NXR 150 Bros ESD</option>

<option value='14'>NXR 150 Bros KS</option>

<option value='77'>POP 100</option>

<option value='20'>Shadow 750</option>

<option value='102'>TRX 420 Fourtrax FM</option>

<option value='103'>TRX 420 Fourtrax TM</option>

<option value='55'>VTX 1800c</option>

<option value='80'>XL1000 Varadero</option>

<option value='18'>XR 250 Tornado</option>

</select>

</label>

<label for="valor_tabela" id="total_tabela">

<span style="margin-left:10px">Valor :</span>

<?php

echo "<input style='text-align:right' type='text' name='money' id='money' size='26' readonly='readonly' value=' $linha[money] ' />";

}

else {

echo "<input style='text-align:right' type='text' name='money' id='money' size='26' readonly='readonly' />";

}

 

?>

 

Como está o BD ?

--

-- Estrutura da tabela `valor`

--

 

CREATE TABLE `valor` (

`id` varchar(4) NOT NULL,

`money` varchar(20) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

 

--

-- Extraindo dados da tabela `valor`

--

 

INSERT INTO `valor` VALUES ('25', '8992');

INSERT INTO `valor` VALUES ('143', '8492');

INSERT INTO `valor` VALUES ('144', '7392');

--

--

--

Esta acontecendo que ao selecionar um modelo ele deveria prencher o <input> com o valor referente ao <id> .... mas num ta acontecendo nada , ele simplesmente da um reload na tela e volta pra opção: selecione.

 

Peço a todos mais essa ajuda para sair desse sofrimento aki ....

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.