Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Preciso fazer um botão que quando o usuário clicar na linha correspondente ele execute o seguinte código sem refresh:
mysql_query('UPDATE tbl_publicacao SET status = S WHERE cod_publicacao = $cod_publicacao');"
Eu entendo e sei que não existe como fazer isso em javascript puro, uma vez que ela trabalha do lado do cliente e ela não tem conexão direta com um servidor Mysql(e nem deve ter), mas o que eu queria somente **EXEMPLIFICANDO** seria tipo assim:
<i onClick="mysql_query('UPDATE tbl_publicacao SET status = S WHERE cod_publicacao = $cod_publicacao');"
Pesquisando vi que uma requisição em AJAX poderia fazer isso, mas eu não sei como desenvolve-la e gostaria de uma ajuda.
Código da Linha da Tabela:
<?php $cod_publicacao = $back_query['cod_publicacao'];
$arquivo = $back_query['arquivo'];
echo"<a href='upload/publicacoes/{$razao_social}/{$tipo}/{$titulo}/{$ano}/{$arquivo}'>
<i class='ace-icon fa fa-eye bigger-110 hidden-480'></i> Visualizar Arquivo</a>";
?>Olá @Pita, olhando seu exemplo eu tentei fazer adaptações, mas eu reparei que precisa de uma página_recebe_post.php e não entendi, tem que enviar para a página que faz a inserção dos dados? Lá não tem nada a ver, porque o que eu preciso é que quando o usuário clique em "Visualizar arquivo", a função já automaticamente troque no banco de dados de "N" para S, sem ir para outras páginas.
>
4 horas atrás, Pita disse:
Neste caso você precisa utilizar Ajax, o JQuery pode ajudar
$("#botao").click(function(){
var valor = $("input").val();
$.post("pagina_recebe_post.php", {parametro: valor}, function(result){
$("span").html(result);
});
});
Neste exemplo a pagina_recebe_post.php recebe os dados e faz o update
Segue alguns links que podem ajudar
[https://www.w3schools.com/jquery/ajax_post.asp](https://www.w3schools.com/jquery/ajax_post.asp)
[https://api.jquery.com/jquery.post/](https://api.jquery.com/jquery.post/)
E o que seria o input na linha 2 e o spam na linha 4, porque olhando o no site do jquery e outros locais eu me baseiei e fiz um exemplo, mas eu não sei como passar a variável de php para ajax:
Script, se você ver erros me ajude:
$(function(){
$('#visualizar').click(function(){
$.ajax({
type : 'post',
url : 'atualiza_visualizar.php',
data : {status: ('S').val(), cod_publicacao: $('$codigo')},
});
});
});
Página atualiza_visualizar.php:
<?php
include "conexao.php";
include "executaSQL.php";
$link= conectar();
$codigo = $_GET['cod_publicacao'];
$updateSQL = mysql_query("UPDATE tbl_publicacao SET status = S WHERE cod_publicacao = $codigo");
$resultSQL = executaSQL($updateSQL, $link);
?>
Seria assim? Se sim como eu passo o código da linha para o ajax para ele enviar para a página atualiza_visualizar.php
Se você não está entendo o que é isso, isto é um sistema de visualização, quando o usuário clica para visualizar o arquivo, é para atualizar no banco de N(valor padrão) para S.Olhando sua página, observei algumas coisas:
- Você está dando GET nos dados enviados, mas o Ajax está enviando via POST, precisaria usar $_POST;
- Você está pegando o "cod_publicacao", mas o Ajax não envia esse dado. A linha data deveria ser algo +/- assim:
data : {cod_publicacao: 1111}>
1 hora atrás, Pita disse:
Olhando sua página, observei algumas coisas:
- Você está dando GET nos dados enviados, mas o Ajax está enviando via POST, precisaria usar $_POST;
- Você está pegando o "cod_publicacao", mas o Ajax não envia esse dado. A linha data deveria ser algo +/- assim:
data : {cod_publicacao: 1111}
Sim, eu percebi e já arrumei o método POST, mas no codigo da publicação eu preciso enviar uma variável, como eu farei isso? Que essa variável é o código referente a linha que irá ser feito o update.
Neste caso você precisa utilizar Ajax, o JQuery pode ajudar