Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, encontrei muito conteudo na internet sobre isso, mas gostária de uma forma simples de pegar no evento onChange de um select, fazer uma consulta e alimentar outro select?
Algo bem basico.
>
javascript cara...
eu te aconselharia usar JQuery
ai você faria algo do tipo
$("#ID_DO_SELECT").change(function() {
var valor_select = $("#ID_DO_SELECT option:selected").attr("value");
$.post("PAGINA_QUE_VAI_PESQUISAR_OQ_VC_QUER.php", { NOME_VARIAVEL_POST : valor_select }, function(data) {
$("#SELECT_A_SER_PREENCHIDO").html(data);
} );//.post
} );
Certo, no meu caso eu possuo um arquivo que faz consultas no banco, e me retornar uma string com todos os options parecido com esse:
function optionGetModelo($id_marca){
$sql = "SELECT ID,NOME FROM modelo WHERE MARCA = " $id_marca;
$rs = mysql_query($sql);
$option = '';
if(mysql_num_rows($rs) > 0)
{
while ( $linha = mysql_fetch_object($rs) )
{
$option .= "<option value='{$linha -> ID}'>{$linha -> NOME}</option>";
}
}
return $option;
}manda assim
$("#ID_DO_SELECT").change(function() {
var valor_select = $("#ID_DO_SELECT option:selected").attr("value");
$.post("PAGINA_QUE_VAI_PESQUISAR_OQ_VC_QUER.php", { NOME_VARIAVEL_POST : valor_select }, function(data) {
$("#SELECT_A_SER_PREENCHIDO").html(data);
} );//.post
} );
e no PAGINA_QUE_VAI_PESQUISAR_OQ_VC_QUER.php
$marca = $_POST['NOME_VARIAVEL_POST'];
echo optionGetModelo($marca);
function optionGetModelo($id_marca){
$sql = "SELECT ID,NOME FROM modelo WHERE MARCA = " $id_marca;
$rs = mysql_query($sql);
$option = '';
if(mysql_num_rows($rs) > 0)
{
while ( $linha = mysql_fetch_object($rs) )
{
$option .= "<option value='{$linha -> ID}'>{$linha -> NOME}</option>";
}
}
return $option;
}certo, é possivel ao inves de chamar o arquivo eu chamar somente a função?
dessa forma:
include("dao.php");
$modelo = new Modelos();
$modelos->optionGetModelos()
sem precisar usar o POST e passar como parametro o value do select anterior?
pq esse arquivo dao eu uso para fazer diversas consultas relacionadas ao Modelos entende? por isso precisava fazer a chamada da função e não do arquivo.
cara..., eu nunca vi isso não...
até pesquisei mas não encontrei nada desse tipo também...
não vou te dar certeza, mas acho que não tem como o Javascript chamar uma função do PHP
uma solução para que você não altere seu DAO seria você criar um arquivo só para receber a querizição do JQuery e enviar para o DAO
$marca = $_POST['NOME_VARIAVEL_POST'];
include("dao.php");
$modelo = new Modelos();
echo $modelos->optionGetModelos($marca);
vou dar mais uma procurada sobre essa parada e qualquer coisa te falo, mas acho dificil
vlw
>
cara..., eu nunca vi isso não...
até pesquisei mas não encontrei nada desse tipo também...
não vou te dar certeza, mas acho que não tem como o Javascript chamar uma função do PHP
uma solução para que você não altere seu DAO seria você criar um arquivo só para receber a querizição do JQuery e enviar para o DAO
$marca = $_POST['NOME_VARIAVEL_POST'];
include("dao.php");
$modelo = new Modelos();
echo $modelos->optionGetModelos($marca);
vou dar mais uma procurada sobre essa parada e qualquer coisa te falo, mas acho dificil
vlw
mesmo assim valeu pela ajuda, é que eu quero trabalhar com classes passagem de parametros nas funções, e não simplesmente dando um echo dentro de um arquivo php.
javascript cara...
eu te aconselharia usar JQuery
ai você faria algo do tipo