Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, bom dia, estou tendo dificuldade em uma filtragem, quando passo o parâmetro para o select em forma de variável ele não exibe resultados.
Segue o código:
$usuario='gerente';
function montaSelect()
{
$sql = "SELECT * FROM membros WHERE user='".$usuario."' ";
$query = mysql_query( $sql );
if( mysql_num_rows( $query ) > 0 )
{
while( $dados = mysql_fetch_assoc( $query ) )
{
$opt .= '<option value="'.$dados['nome'].'">'.$dados['nome'].'</option>';
}
}
else
$opt = '<option value="0">Nenhum Membro cadastrado</option>';
return $opt;
}
Quando substituo a variável pelo nome usuário gerente, ele lista normal, mais na variável não da certo.
já tentei user='{$usuario}' , user='$usuario' , user=$usuario}, nenhuma forma funciona...
Alguém pode me ajudar..Boa tarde, eu declarei a variável, ela é local, deveria funcionar quando passo o valor para ela.
Quando dou pint_r ou echo nela funciona, agora dentro do select não funciona.
Testei e funcionou aqui..
e é o mesmo código do pelo William Bruno
Neste caso ai no código remover os espaços que contem nos
( )
Segue o código do William
<?php
$con = mysql_connect('localhost', 'root', '123');
mysql_select_db('test', $con);
/**
* função que retorna o select
*/
function montaSelect()
{
$sql = "SELECT `idCliente`, `nome` FROM `cliente` ";
$query = mysql_query( $sql );
if(mysql_num_rows($query) > 0 )
{
while($dados = mysql_fetch_assoc($query) )
{
$opt .= '<option value="'.$dados['idCliente'].'">'.$dados['nome'].'</option>';
}
}
else
$opt = '<option value="0">Nenhum cliente cadastrado</option>';
return $opt;
}
/**
* função que devolve em formato JSON os dados do cliente
*/
function retorna($id)
{
$id = (int)$id;
$sql = "SELECT `idCliente`, `nome`, `telefone`, `endereco`
FROM `cliente` WHERE `idCliente` = {$id} ";
$query = mysql_query($sql);
$arr = Array();
if(mysql_num_rows($query) )
{
while($dados = mysql_fetch_object($query) )
{
$arr['endereco'] = $dados->endereco;
$arr['telefone'] = $dados->telefone;
}
}
else
$arr[] = 'endereco: não encontrado';
return json_encode($arr);
}
/ só se for enviado o parâmetro, que devolve o combo /
if( isset($_GET['idCliente']))
{
echo retorna($_GET['idCliente']);
}
Na dúvida só seguir o jeito que ele mostra [LINK](http://wbruno.com.br/ajax/combobox-preenche-input-ajax/)
Ou tente usar desta maneira
<?php
function Selected($query, $value = null){
if ($query == $value) { echo "selected"; }
}
//Ou então usar desta outra formato
/* function selected( $value, $selected ){
return $value==$selected ? ' selected="selected"' : ''; ?>
<select class="form-control" name="id_membros">
<?php $sql = "SELECT * FROM membros WHERE user='".$usuario."' AND id > 0"; $query = mysql_query($sql);
while($dados = mysql_fetch_assoc($query)) { ?>
<?php if (empty($dados['nome'])) { ?>
<option value="0">Nenhum Membro cadastrado</option>
<?php }else{?>
<option value="<?php echo $dados['id']; ?>" <?php Selected($dados['id_membros'],$dados['id']); ?>><?php echo $dados['nome']; ?></option>
<?php } /* IF*/?>
<?php } ?>
</select>
Sem entender o que é escopo de uma função e de variáveis, fica dificil mesmo.
http://linguagemc.com.br/funcoes-e-escopo-de-variaveis/