Ir para conteúdo

POWERED BY:

Arquivado

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

Alex Talha

[Resolvido] Clicar e mudar de cor

Recommended Posts

Olá amigos

 

Estou com um formulario concluido e queria fazer algumas alterações.

Depois de fazer o cadastro de um pessoa , fica uma table com um while que me mostra todos os registros cadastrados.

Porém nesta mesma table ao lado eu coloquei um botão , a duvida é , teria de alguma forma em ao clicar no botão mudar a cor do nome vizualizado , apenas aquele .

 

Estou tentando fazer isso, e minha ideia foi criar um campo no banco de dados para receber um valor especifico.

 

aí o que eu fiz


funcao.php 
<?
if($_GET['funcao'] =="pronto"){
$id = $_GET['id'];

$sql_ok = mysql_query("UPDATE minha_tabela SET pronto="ok" WHERE id='$id' ")or die (mysql_error());

}

?>

form.php (parte do código)

 <?php
    
  $sql_visualizar  = mysql_query ("SELECT * from curso_tb ORDER BY nome ");
  
  while ($linha = mysql_fetch_array ($sql_visualizar)){
  $pega_nome = $linha['nome'];
  $id = $linha['id'];
  $pronto = $linha['pronto']
  
  ?>
  <tr>
    <td height="33"><? echo $pega_nome ?></td>
    <td><div align="center"><a href="form.php?funcao=pronto&id=<? echo $id ?>"><img src="img/Ok-icon.png" width="32" height="32" /></a></div></td>
    <td><div align="center"><a href="form.php?funcao=editar&id=<? echo $id ?>"><img src="img/search-icon.png" width="32" height="32" border="0" /></a></div></td>
    <td><div align="center"><a href="funcoes.php?funcao=excluir&id=<? echo $id ?>"><img src="img/Close-box-red-32.png" width="32" height="32" border="0" /></a></div></td>
  </tr>
  <? } ?>
</table>
</body>
</html>

Basicamente é isso , ainda não consegui fazer com que mude de cor , empaquei na atualização da tabela, pois apartir do registro na tabela que vai dar pra fazer alguma coisa .

 

Vlw Pessoal!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai é melhor que você faça com javascript

exemplo simples:

<html>
<head>
	<title></title>
<script type="text/javascript">
window.onload = function()
{
	var tds = document.getElementById('list').getElementsByTagName('td');
	for( var i=0; i<tds.length; i++ )
	{
		tds[i].onclick = function()
		{
			this.parentNode.style.color = '#f00';
		}
	}
}
</script>
</head>
<body>
	<table id="list">
		<thead>
			<tr>
				<th>Nome</th><th>Muda</th>
			</tr>
		</thead>
		<tbody>
			<tr>
				<td>William</td><td>Rocha</td>
			</tr>
			<tr>
				<td>Bruno</td><td>Moraeso</td>
			</tr>
		</tbody>
	</table>
</body>
</html>
em qualquer célula que você clicar, vai colocar em vermelho os textos daquela linha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aham, com JS. E para colorir apenas o nome especificado, selecione-o por algum atributo ou pelo próprio texto (nome) que ficará dentro de um elemento. Eu fiz um exemplo em jQuery:

 

<script src="http://code.jquery.com/jquery-1.4.2.min.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
 $("button").click(function() {
  var nome = $("#nome").val();
  $("#lista li:contains(" + nome + ")").css("color", "red");
 });
});
</script>
<button>Colorir o nome: </button><input type="text" id="nome" />
<ul id="lista">
 <li>Roberto</li>
 <li>Francisco</li>
 <li>Manoel</li>
 <li>Carlos</li>
</ul>
*Digite o nome que quer colorir e então clique no botão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

até pensei em ver algo com javascript porém fiquei na duvida em saber se quando eu fechar o servidor e abrir denovo se aquele mesmo campo clicado ainda estára na cor clicado.

 

vai ficar registrado mesmo ou apenas ficar na cor temporariamente com javascript?

Compartilhar este post


Link para o post
Compartilhar em outros sites

se você fizer dessa forma com javascript, vai ficar apenas enqnto a página estiver sendo visualizada

 

para fazer com php puro, você poderia fazer algo assim:

 

<a href="vincula_cor.php?id=15">Colorir</a>

 

 

ai nesse arquivo:

vincula_cor.php, você recebe o $_GET['id'], faz o UPDATE na tua tabela do banco de dados, e retorna para a listagem com um redirecionamento.

 

tendo salvo no banco, que a linha foi alterada de cor, ela permanecerá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é exatamente o que eu preciso , só não acertei nem ainda o update na tabela, como eu disse que fiz dessa forma e não atualizou

 


if($_GET['funcao'] == "editar"){
$id = $_GET['id'];
$sql_alterar = mysql_query ("UPDATE curso_tb SET nome='$grava_nome',email='$grava_email',cidade='$grava_cidade',mensagem='$grava_mensagem' WHERE id='$id' ") or die (mysql_error());
header("Location:form.php");
}

porque aí depois que atulizar e tendo um valor na tabela já posso criar uma condiçã né ?

 

mas mesmo assim dessa forma que eu fiz não está colocando nada na tabela , acho que estou fazendo o query errado para essa condicional , será que vcs conseguem ver o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

deixe nos entender como está o teu sistema.

 

como você fez o link ?? como ficou a tag <a> que eu sugeri ?

o header acontece ? aparece o erro mysql ?

 

não era pra você editar todos os campos, apenas oq fosse marcar que a cor foi alterada..

você entendeu mesmo oq eu disse ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

no caso do link ele funciona porém não dá erro e não atualiza a tabela.

 

para eu conseguir essa proeza eu preciso primeiro atualizar a tabela coisa que não estou conseguindo, se alguem puder me dar uma luz , eu já coloquei o codigo nos posts acima.

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sugestão... use JQuery e Ajax...

 

O JQuery vai facilitar a manipulação do CSS e a requisição ajax...

 

Por exemplo:

 


//Leia todas a linhas da tabela
$('#formulario tr').each(function(n, m){

    //procure o botao dessa linha e manipule o evento click
    $(m).find('.botaoQueMudaDeCor').unbind('click').click(function(){


        //envia requisição ajax para mudar_cor.php sem recarregar a página
        $.ajax({
            type: 'POST',
            url: '/mudar_cor.php',

            //Procura o component com class "id" e passe seu conteudo para o php ($_POST['id'])
            data: {'id':$('.id').html()},

            //Quando a requisição terminar, mude a cor da linha inteira
            success: function(ret){
                $(m).css({'background':'red'});
            }
        });

    });
});

no arquivo mudar_cor.php você faz a alteração no banco, lembrando que o id está em $_POST['id']

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw rogério , porém não sou muito conhecedor de jquery, tenho que ver mais .

 

a forma que eu estou quase conseguindo essa proeza está sendo desta forma

 

criei um botão e o evento daquele botão insere no banco o texto "OKEY" para o campo 'pronto'

 

sendo assim agora tou tentando fazer um if para poder separar as coisas

 

tipo

 

$sql_visualizar = mysql_query("SELECT * FROM tabela_bd ORDER BY nome ");

while ($linha = mysql_fetch_array($sql_vizualizar){
$nome = $linha ['nome']
$id = $linha ['id'];
$pronto = $linha ['pronto'];

if ($pronto == 'OKEY'){

comando css para cor verde na fonte
}ELSE{

comando css para cor preta na fonte 
}

?>


// Já na tabela queria colocar desta forma que no caso esse $pega_nome aparecesse com a cor da condição


<tr>
    <td><? echo $pega_nome ?></td>

</tr>

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera consegui !

 

fiz da seguinte forma

$sql_visualizar = mysql_query("SELECT * FROM tabela_bd ORDER BY nome ");
while ($linha = mysql_fetch_array($sql_vizualizar){
$nome = $linha ['nome'];
$id = $linha ['id'];

// cores 
$cor ="";
$cor_verde = "#32cd32";
$cor_preto = "#000000";
if ($pronto = $linha['pronto']) == 'OKEY'){
$cor = $cor_verde;
}ELSE{
$cor = $cor_preto;
}
?>

<tr bgcolor="<? echo $cor ?>">    
     <td><? echo $pega_nome ?>
     </td>
</tr>

Vlw aí galera pela ajuda. Com apenas duas semanas já consegui fazer alguma coisa rssss.

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.