Update MySQL data with Ajax

1

I have an ads table with a field called highlight, by default its value is 0.

I have all the ads in a table in HTML. I want to make when the user clicks "Enable highlight" it sends an update in MySQL changing the field from 0 to 1 without refresh on the page.

Is it possible?

Note: Before they say that I did not go back and I want ready, I was yes, but I can not at all. I'm not asking for ready code, just a direction.

    
asked by anonymous 26.02.2015 / 00:06

2 answers

4

Here you have an idea how to do following the code below

<script>
$(document).ready(function() {
    $(document.body).on('click', '#id_botao', function(e) {
        e.preventDefault();
        var data = { 
            // Aqui passa as variaveis com os dados que serão de ser actualizados na base de dados
          };
        $(this).addClass("class"); // Aqui muda a class css caso queira
        $(this).text("texto"); // Aqui voce muda o texto do botao caso queira
        $.ajax({
            type: "POST",
            url: "Fiheiro que faz update na bd",
            data: data,
            cache: true
        }).done(function( msg ) {
            $("#sucesso").html("sucesso").fadeIn(400);
            $("#sucesso").fadeOut(4000); // Aqui apresenta uma mensagem de sucesso caso queira
        });
    });
});

Hope it helps test and just adapt to your case say something.

    
26.02.2015 / 00:44
1

Simple

JQuery / AJAX

$("#btn-destaque").click(function () { //Quando o botão destaque for pressionado
var idAnun = null; //Aqui você dá um jeito de passar a id do anuncio a receber o destaque
$.ajax({
    method: "post", //Escolhe o método de envio
    url: "/on-destaque.php", //O endereço do script php que fará o update
    data: {id: idAnun,action: 'on'} //Envio da ID do anuncio e a ação (ativar)

}).done(function (answer) {
    //ação em caso de sucesso

}).fail(function (jqXHR, textStatus) {
    //Ação em caso de falha
});
});

PHP:

<?php
include_once 'script_BD.php'; //Script com a conexão ao banco de dados
if (isset($_POST['id']) && $_POST['id'] != 0) { //$_POST['id'] != 0 (em caso de tabela auto incremento o id será do tipo inteiro e nunca será iniciada em 0) isso em MySQL não sei outros Bancos de dados
$db = connectdb(); //função do "script_BD.php"
$action = $_POST['action'] == 'on'? 1:0; //verifica o tipo de ação
$update = $db->prepare("UPDATE 'tabela' SET 'coluna_destaque' = :action WHERE id = :id");
$update->bindValue(":action",$action,PDO::PARAM_INT);
$update->bindValue(":id",$_POST['id'],PDO::PARAM_INT);
$update->execute(); // executa update;
}

Well I tell you that this is one of the ways to do this update. Now with effort you will be able to adapt it to your need.

I used PDO here, I do not know what practice you use to communicate with the database.

    
15.01.2017 / 07:33