Jump to content

Incrementar 1 valor na bd e esconder o botao


rjsma

Recommended Posts

Boas,

Estou tento problemas em mudar o name e o value de um submit. O meu objectivo é o utilizador da sessão clicar num botão e ao clicar no botao incrementar 1 valor ao valor do campo popular na bd.Cada utilizador só pode clicar 1 vez no botao em cada link. Depois de clicar 1 vez no botao o botao esconde-se. O que eu quero é +/- do genero ao curtir/gosto do facebook.

Já consegui incrementar o valor na bd, inserir na bd o id que o utilizador clicou agora estou a ter mesmo dificuldade é a esconder o botao do utilizador.


<input id='popular' type='submit' name=";?>
  <?php
  	if($numpopular==0) {
  		//esconde o butao ao utilizador
	}
	else{ 
		echo'popular';
		echo 'value=Popular';
		}
  ?> <?php echo "/>

Por sim por não fica aqui o codigo completo.


$busca = mysql_query("Select * from favoritos where id = '$id_url'");
$utilizador_online= $_SESSION["utilizador"];
$popular = mysql_query("Select * from popular where id = '$id_url' and utilizador_favorito='$utilizador_online'");
$numpopular= mysql_num_rows($popular);

while($detalhes=mysql_fetch_array($busca)){

  echo "
  <form name='popular' method='post' action='comentarios.php?link=$id_url'>
      <input id='popular' type='submit' name=";?>
  <?php
  	if($numpopular==0) {
  		//esconde o butao ao utilizador
	}
	else{ 
		echo'popular';
		echo 'value=Popular';
		}
  ?> <?php echo "/>
      </form>
  <table class='lista'>
  <tr>
  <td><br>".$detalhes['utilizador']."</td>
  </tr>
  <tr>
    <td><img src=".$detalhes['favicon']."/>  " .$detalhes['nome'] . " </td>
      <td rowspan=3 align=center valign=middle><a href=".$detalhes['url'] ." target='blank'/><input type='submit' name='submit' value='Abrir'/></a></td></tr>
  <tr>
    <td>Categoria: " . $detalhes['categoria'] . "</td>
      </tr>
  <tr>
    <td>Descrição: " . $detalhes['descricao'] . "<br><br><br></td>
      </tr>
   <tr>
    <td>Data: " . $detalhes['data'] . "<br><br><br></td>
      </tr>
      </table>";


}




// Verifica se o form foi submetido (se a pagina foi acessada em metodo post) ja que nao é possivel validar o valor que nao vem do form
if (isSet($_POST['popular'])){

$utilizador_online= $_SESSION["utilizador"];

   // SQL pra atualizar o valor do campo na tabela
     $SQL = mysql_query('UPDATE favoritos SET popular = popular + 1 WHERE id = '.$id_url);
				   
 $Inserir = mysql_query("Insert into popular(id, utilizador_favorito) Values ('$id_url','$utilizador_online')");		   

}				   
   
if (isSet($_POST['nao_popular'])){
   
    echo "Gostastes deste link.";
   
   }

?>

Cumprimentos

Link to post
Share on other sites

Se veres bem no meu codigo já tenho isso. Só a parte de verificar e que esta a falhar.


<input id='popular' type='submit' name=";?>
          <?php
                if($numpopular==0) {
                       echo 'nao_popular';
		echo 'value=Não Popular';

                }
                else{
                        echo'popular';
                        echo 'value=Popular';
                        }
          ?> <?php echo "/>

Link to post
Share on other sites
Lfscoutinho

Boas,

Desculpa, nem sequer tinha olhado para o código, respondi com base na tua dúvida.

Se já conseguiste incrementar o valor na BD, então o teu problema esta na consulta.

Link to post
Share on other sites

Penso que não porque o botão aparece enviar dados, deve ser um valor defeito caso não seja escrito um value no submit. Acho que é aqui:


<input id='popular' type='submit' name=";?>
          <?php
                if($numpopular==0) {
                       echo 'nao_popular';
                        echo 'value=Não Popular';
                
                }
                else{
                        echo'popular';
                        echo 'value=Popular';
                        }
          ?> <?php echo "/>

Consoante o name do submit executa o seguinte codigo:


if (isSet($_POST['popular'])){

$utilizador_online= $_SESSION["utilizador"];

   // SQL pra atualizar o valor do campo na tabela
     $SQL = mysql_query('UPDATE favoritos SET popular = popular + 1 WHERE id = '.$id_url);
                                           
         $Inserir = mysql_query("Insert into popular(id, utilizador_favorito) Values ('$id_url','$utilizador_online')");                   
        
        }                                  
   
if (isSet($_POST['nao_popular'])){
   
    echo "Gostastes deste link.";
   
   }
        
        ?>

A query está aqui mas penso que não é disso mas sim não estar a definir o name ao submit.


$utilizador_online= $_SESSION["utilizador"];
$popular = mysql_query("Select * from popular where id = '$id_url' and utilizador_favorito='$utilizador_online'");
$numpopular= mysql_num_rows($popular);

Link to post
Share on other sites
Lfscoutinho

Boas,

Isso vai para ai uma trapalhada, nossa senhora de Fátima !

Sim, se não definires o valor "value" de um botão do tipo "submit", ele assume esse valor automaticamente.

Em vez do que tens devias ter algo como:

<?php

if ( ! $numpopular ) {

echo '<input id="popular" type="submit" name="popular" value="Popular !" />';

} else {

echo '<input id="popular" type="submit" name="nao_popular" value="Não popular !" />';

}

?>

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.