Estou com uma dificuldade com um código que estou montando em php para buscar uma lista suspensa a partir de outra lista suspensa. Usando Ajax e xml.
Exemplo: Tenho no banco de dados 2 grupos de despesas, 2 despesas e 1 funcionário. Quero que ao selecionar 1 grupo de despesas na lista suspensa eu veja apenas as despesas vinculadas aquele grupo em outra lista suspensa. Assim como quero ver os funcionários cadastrados em uma terceira lista suspensa caso o grupo de despesas esteja vinculado a funcionários também.
Bom o que está ocorrendo é que ao selecionar um grupo de despesas a lista suspensa das despesas fica sempre em branco, porém a lista suspensas de funcionários está funcionando corretamente, aparecendo os funcionários sempre que seleciono o grupo de despesas vinculado a funcionários.
Coloquei um comentário no código que quando escrevo o código do grupo direto na programação tudo funciona. Como se me indicasse que o problema está na variável que busca o código do grupo, mas não consigo acertar.
Abaixo o Código do Ajax:
<html>
<script type="text/javascript">
var linhas = "<?php echo $conv_desp_rec?>";
var linhasv = "<?php echo $linhasv?>";
var id_empresa = "<?php echo $id_empresa?>";
if(nm_grdespesa){
var url_1 = 'xml/despesas_ajax.php?nm_grdespesa='+nm_grdespesa+'&linha='+i+'&id_empresa='+id_empresa;
//não está funcionando essa busca, assim funcionou->'xml/despesas_ajax.php?nm_grdespesa=29&linha='+i+'&id_empresa='+id_empresa;
<?php
include('conexao.php');
$sql9 = "select * from tb_grdespesa where id_empresa='$id_empresa'";
//$sql10 = "select nm_despesa from tb_despesa where id_empresa='$id_empresa'";
$sql11 = "select ds_nome_func from tb_func where id_empresa='$id_empresa'";
$resultado_nm_grdesp = mysql_query($sql9,$conexao)
or die(mysql_error($conexao));
//$resultado_nm_desp = mysql_query($sql10,$conexao)
// or die(mysql_error($conexao));
$resultado_nm_func = mysql_query($sql11,$conexao)
or die(mysql_error($conexao));
echo
"<div id='load_desp$x9' class='campo_desp'>
<select name='desp$x9' id='desp$x9'>
<option><-Selecione o Grupo da Despesa</option>
</select>
</div>";
echo
"<div id='load_func$x9' class='campo_func'>
<select name='func$x9' id='func$x9'>
<option><-Selecione o Grupo da Despesa</option>
</select>
</div>";
echo"
<div class='campo_valor_desp'>
<input type='text' class='input' name='valor_desp$x9' value ='0,00' onkeypress='mascara(this,semponto)'
onblur='somadesp();faltasobraautomatica()' id='valor_desp$x9' />
</div>
Pergunta
Rafael Taboada
Bom Dia !
Estou com uma dificuldade com um código que estou montando em php para buscar uma lista suspensa a partir de outra lista suspensa. Usando Ajax e xml.
Exemplo: Tenho no banco de dados 2 grupos de despesas, 2 despesas e 1 funcionário. Quero que ao selecionar 1 grupo de despesas na lista suspensa eu veja apenas as despesas vinculadas aquele grupo em outra lista suspensa. Assim como quero ver os funcionários cadastrados em uma terceira lista suspensa caso o grupo de despesas esteja vinculado a funcionários também.
Bom o que está ocorrendo é que ao selecionar um grupo de despesas a lista suspensa das despesas fica sempre em branco, porém a lista suspensas de funcionários está funcionando corretamente, aparecendo os funcionários sempre que seleciono o grupo de despesas vinculado a funcionários.
Coloquei um comentário no código que quando escrevo o código do grupo direto na programação tudo funciona. Como se me indicasse que o problema está na variável que busca o código do grupo, mas não consigo acertar.
Abaixo o Código do Ajax:
<html>
<script type="text/javascript">
var linhas = "<?php echo $conv_desp_rec?>";
var linhasv = "<?php echo $linhasv?>";
var id_empresa = "<?php echo $id_empresa?>";
for(i=0 ; i < linhas ; i++){
function buscar_desp_func(i){
var nm_grdespesa = $('#grdesp'+i).val();
var nm_grdespesa_vinculo = <?php
if($linhasv > 1){
for($v=1 ; $v < $linhasv ; $v++){
echo"['$grdespesa_vinculo[0]','$grdespesa_vinculo[$v]'];";
}
}elseif($linhasv == 1){
for($v=0 ; $v < $linhasv ; $v++){
echo"['$grdespesa_vinculo[0]'];";
}
}elseif($linhasv == 0){
echo"['000000'];";
}
?>
if(nm_grdespesa){
var url_1 = 'xml/despesas_ajax.php?nm_grdespesa='+nm_grdespesa+'&linha='+i+'&id_empresa='+id_empresa;
//não está funcionando essa busca, assim funcionou->'xml/despesas_ajax.php?nm_grdespesa=29&linha='+i+'&id_empresa='+id_empresa;
$.get(url_1, function(dataReturn) {
$('#load_desp'+i).html(dataReturn);
});
}
for(v=0 ; v < linhasv ; v++){
if(nm_grdespesa == nm_grdespesa_vinculo[v]){
var url = 'xml/funcionarios_ajax.php?linha='+i+'&id_empresa='+id_empresa;
$.get(url, function(dataReturn) {
$('#load_func'+i).html(dataReturn);
});
}else{
var url = 'xml/funcionarios_ajax_vazio.php?linha='+i;
$.get(url, function(dataReturn) {
$('#load_func'+i).html(dataReturn);
});
}
}
}
}
</script>
</html>
E abaixo o código das listas suspensas:
<html>
<?php
include('conexao.php');
$sql9 = "select * from tb_grdespesa where id_empresa='$id_empresa'";
//$sql10 = "select nm_despesa from tb_despesa where id_empresa='$id_empresa'";
$sql11 = "select ds_nome_func from tb_func where id_empresa='$id_empresa'";
$resultado_nm_grdesp = mysql_query($sql9,$conexao)
or die(mysql_error($conexao));
//$resultado_nm_desp = mysql_query($sql10,$conexao)
// or die(mysql_error($conexao));
$resultado_nm_func = mysql_query($sql11,$conexao)
or die(mysql_error($conexao));
$linhas9 = mysql_num_rows($resultado_nm_grdesp);
//$linhas10 = mysql_num_rows($resultado_nm_desp);
$linhas11 = mysql_num_rows($resultado_nm_func);
for( $x9=0 ; $x9 < $conv_desp_rec ; $x9++ )
{
echo
"<div class='campo_grdesp'>
<select name='grdesp$x9' id='grdesp$x9' onBlur='buscar_desp_func($x9)'
onChange='buscar_desp_func($x9)'
onKeyup='buscar_desp_func($x9)' >";
for( $x10=0 ; $x10 < $linhas9 ; $x10++ )
{
$ds_nome_grdesp = mysql_result($resultado_nm_grdesp,$x10,'nm_grdespesa');
$cd_grdesp = mysql_result($resultado_nm_grdesp,$x10,'cd_grdespesa');
echo "<option value='$cd_grdesp'>$ds_nome_grdesp</option>";
}
echo
"</select>
</div>";
echo
"<div id='load_desp$x9' class='campo_desp'>
<select name='desp$x9' id='desp$x9'>
<option><-Selecione o Grupo da Despesa</option>
</select>
</div>";
echo
"<div id='load_func$x9' class='campo_func'>
<select name='func$x9' id='func$x9'>
<option><-Selecione o Grupo da Despesa</option>
</select>
</div>";
echo"
<div class='campo_valor_desp'>
<input type='text' class='input' name='valor_desp$x9' value ='0,00' onkeypress='mascara(this,semponto)'
onblur='somadesp();faltasobraautomatica()' id='valor_desp$x9' />
</div>
<div class='campo_obs_desp'>
<label for='obs_desp$x9'>Observações:</label>
<input type='text' class='input' name='obs_desp$x9' onkeypress='mascara(this,semponto)' value ='observação' id='obs_desp$x9' />
</div>";
}
?>
</html>
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.