rjsma 2 Posted March 30, 2011 Report Share Posted March 30, 2011 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
Lfscoutinho 2 Posted March 30, 2011 Report Share Posted March 30, 2011 Boas, Tens que verificar se o utilizador já votou nessa "foto" e consoante isso, mostrar ou não o botão. Link to post Share on other sites
rjsma 2 Posted March 30, 2011 Author Report Share Posted March 30, 2011 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 2 Posted March 30, 2011 Report Share Posted March 30, 2011 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
rjsma 2 Posted March 30, 2011 Author Report Share Posted March 30, 2011 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 2 Posted March 30, 2011 Report Share Posted March 30, 2011 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
rjsma 2 Posted March 30, 2011 Author Report Share Posted March 30, 2011 Pois estava a raciocinar mal. Dessa maneira já resulta Obrigado mais uma vez Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now