Update Mysql data with Ajax

Asked

Viewed 1,599 times

1

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

I list all the ads on a table in HTML. I wanted to make when the user click on "Enable highlight" it send an update in Mysql changing the field from 0 to 1 without refresh on the page.

It is possible?

Note: Before they say that I did not go after and I want ready, I went yes, but I can not at all. I’m not asking for code ready, just a course.

  • 1

    Edit your question and add the code you’ve already made.

  • Show your code...

2 answers

5

Here’s an idea of how to do follow 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
        });
    });
});

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

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 do not know which practice you use to communicate with the database.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.