Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde.
Estou começando a estudar php e talvez esta seja uma dúvida simples mas já procurei em várias fontes e não achei nada. Então agradeço qualquer sugestão para resolver minha dúvida.
Eu tenho a seguinte array:
<?php
while ($row = mysqli_fetch_array($mostrar_listagem)) {
echo '<tr> <td>' . $row['DataBR'] . '</td>';
echo '<td class=left>' . $row['Nome'] . '</td>';
echo '<td>' . $row['Email'] . '</td>';
echo '<td class=left>' . $row['Instituicao'] . '</td>';
echo '<td><a href="cadastro_usuario.php?id=' . $row['id'] . '"><img src="Imagens/icon_show.png" /></a></td>';
echo '<td><a href="cadastro_editar.php?id=' . $row['id'] . '"><img src="Imagens/icon_edit.png" /></a></td>';
echo '</tr>';
}
?>Minha dúvida é sobre como pegar o valor da, por exemplo, $row['Nome'] de uma linha do grid para usar em outro lugar.
Obrigado por qualquer ajuda.
Claudio
Oi, Carlos. Obrigado pela resposta.
O primeiro caso eu até havia tentado, tendo, como você exemplificou, o último nome como retorno. Se entendi (e foi o teste que fiz), no segundo caso ele lista todos os nomes.
Mas o que precisava é, numa lista da array que retorne, digamos, 10 nomes, pegar, por exemplo, o 5º.
Abs
Simples, crie um contador fora do laço de repetição e use uma condição dentro do laço para verificar a quantas anda.
$count = 1;
while( $row = mysqli_fetch_array( $mostrar_listagem ) )
{
if( $count == 5 )
{
$name = $row[ 'name' ];
}
$count++;
}>
Simples, crie um contador fora do laço de repetição e use uma condição dentro do laço para verificar a quantas anda.
$count = 1;
while( $row = mysqli_fetch_array( $mostrar_listagem ) )
{
if( $count == 5 )
{
$name = $row[ 'name' ];
}
$count++;
}Ou então cria um array de nomes como :
$nomes = null;
while( $row = mysqli_fetch_array( $mostrar_listagem ) )
{
$nomes[] .= $row['Nome'];
}$nome = $nomes[5] ;
Foi o que eu disse no post #4
Ou coloca tudo em um array e acessa diferentes valores diretamente pelo index dele [inline]$name[ 5 ][/inline]
Foi o que eu disse no post #4
Nem vi :natalbiggrin:
Relendo o que escrevi no segundo post acho que não fui claro como deveria. Bom, desculpem. Acho que a objetividade para explicar a dúvida vem com o conhecimento, que ainda não tenho muito.
Eu vi e testei o que vocês mandaram. E tentei adaptar para chegar ao que preciso, mas não consegui.
Na tabela gerada pelo array, há x linhas com nomes. O que estou tentando é, ao clicar em um destes nomes, armazene este $row['Nome'] para usá-lo em outro lugar na mesma página.
E sim, faltou uma coisa no código:
onde está
echo '<td class=left>' . $row['Nome'] . '</td>';Na verdade é
echo '<td class=left> <a href="#">' . $row['Nome'] . '</a></td>';PASSO 1 - Adicione isso ao head do seu html
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('.nomes').click(function(){
var name = jQuery(this).text();
jQuery.ajax({
type : 'POST',
url : 'guardarNome.php',
data : {nome : name}
})
})
})
</script>
PASSO 2 - Adicione a classe class="nomes" para os links que tenham nome no código PHP
echo '<td class=left> <a href="#" class="nomes">' . $row['Nome'] . '</a></td>';
PASSO 3 - Adicione este arquivo guardarNome.php
<?php
$nome = $_POST['nome'];
$_COOKIE['nome'] = $nome;
?>
Isso faz com que dispare um ajax para o arquivo guardarNome.php e set o $_COOKIE['nome'], pelo valor do texto do link.
Para resgatar este valor, basta acessar o cookie em $_COOKIE['nome']:
<?php
// exemplo de imprimir valor cookie;
echo $_COOKIE['nome']
?>Oi, Raphael. Cara, eu testei aqui mas não funcionou.
Resumi o meu código para o essencial, assim poderia testar melhor. No seu código, só não entendi muito bem como em
echo $_COOKIE['nome']
ele pega o valor de volta da guardarNome.php.
<!doctype html>
<html><head>
<meta charset="utf-8">
<title></title>
<style type="text/css">@import url(css/master.css);</style>
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('.nomes').click(function(){
var name = jQuery(this).text();
jQuery.ajax({
type : 'POST',
url : 'jQuery/guardarNome.php',
data : {nome : name}
})
})
})
</script>
</head>
<body>
<div id="ConteinerMaster">
<main>
<?php include 'Includes/conexao_db.php'; ?>
<?php
$listagem = "SELECT Nome FROM tabela_cliente";
$mostrar_listagem = mysqli_query($dbc, $listagem);
?>
<table class="tablesorter">
<?php echo '<tr><td class=left><a href="#" class="nomes">' . $row['Nome'] . '</a></td></tr>';
}
?>
</table>
<p><?php echo $_COOKIE['nome']; ?></p>
</div>
<?php mysqli_close($dbc); ?>
</main>
</div>
</body>
</html>Agora eu entendi o que você está querendo!
veja se isso lhe serve:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">@import url(css/master.css);</style>
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://raphael.eti.br/libs/js/cookie.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('.nomes').click(function(){
var name = jQuery(this).text();
// Se você não for utilizar este nome em outras páginas
//comente o código jQuery.cookie("nome", name); citado abaixo
//[[[[[[
jQuery.cookie("nome", name);
// ]]]]]]]]]]
jQuery('#nomeRetorno').html(name);
})
})
</script>
</head>
<body>
<div id="ConteinerMaster">
<main>
<?php
// EVITE FICAR ABRINDO E FECHANDO TAGS PHP SEM NECESSIDADES, ASSIM VC EVITA FORÇAR A INTERPRETAÇÃO
// DO SCRIPT E GANHA EM OTIMIZAÇÃO
// USE ASPAS DUPLAS " SOMENTE QUANDO A STRING POSSUIR ALGUMA VARIAVEL À SER INTERPRETADA, OU CARACTER
// ESPECIAL COMO \n \r \t ...
// PROCURE DAR NOME COERENTE ÀS VARIAVEIS
include 'Includes/conexao_db.php';
$sqlListagem = 'SELECT Nome FROM tabela_cliente';
$listagem = mysqli_query($dbc, $listagem);
if (count($listagem) > 0)
echo '<table class="tablesorter">' ;
while ($row = mysqli_fetch_array($mostrar_listagem)) {
echo "<tr><td class='left'><a href='#' class='nomes'>{$row['Nome']}</a></td></tr>";
}
echo '</table>' ;
echo '<span id="nomeRetorno"></span>' ;
}
else
echo ('Você ainda natilde;o possui uma listagem para ser apresentada');
mysqli_close($dbc);
?>
</main>
</div>
</body>
</html>Oi, Rafael.
Funcionou perfeitamente.
E valeu pelas dicas também. Eu já tinha noção de que o código estava bem zoneado, mas havia resolvido dividir este estudo em primeiro fazer a página funcionar e depois otimizar o código (para entender melhor e bem o que cada parte faz).
Novamente obrigado pela ajuda e pela paciência. Espero que, daqui a um tempo, possa estar ajudando também.
Abs
>
Oi, Rafael.
Funcionou perfeitamente.
E valeu pelas dicas também. Eu já tinha noção de que o código estava bem zoneado, mas havia resolvido dividir este estudo em primeiro fazer a página funcionar e depois otimizar o código (para entender melhor e bem o que cada parte faz).
Novamente obrigado pela ajuda e pela paciência. Espero que, daqui a um tempo, possa estar ajudando também.
Abs
Que bom que pude ajudar, e analisando o código dos outros, nós retemos muita coisa que nos ajuda muito, e também filtramos muita coisa.
Dá meu post aew como resolvido e bola pra frente :natallaugh:
Você pode armazenar em uma nova variável um único valor ou colocar todos os valores que vc quer em um array e iterá-lo posteriormente.
Exemplo.
while( $row = mysqli_fetch_array( $mostrar_listagem ) )
{
{
No primeiro caso, se a consulta resultar em mais de um resultado, apenas o último é que irá preencher a variável $name.