Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zaktualizować MySQL za pomocą PHP i AJAX bez ODŚWIEŻANIA STRONY?

Ajax w jQuery działa tak:

var myData=1;
$.ajax({
    type:'POST',//type of ajax
    url:'mypage.php',//where the request is going
    data:myData,//the variable you want to send
    beforeSend:function(xhr){//as a standard, I add this to validate stuff
        if(someThingWrong===true)xhr.abort//aborts xhttpRequest
   },
   success:function(result){
       //result is your result from the xhttpRequest.
   }
});

Nie odświeży to Twojej strony, ale wyśle ​​„POST” na podany adres URL. Na określonej stronie chcesz zrobić to, co chcesz i powiedzieć, że zwracasz wynik. W moim przykładzie zrobię coś prostego:

if($_POST['myData']===1)return True;

To są podstawy żądania AJAX przy użyciu jQuery.

EDYTOWAĆ!

inicjowanie skryptu AJAX:zgaduję tylko, ponieważ nie znam twoich elementów w twoim html ani twoich skryptów! Musisz więc dokonać zmian!

$('button.dislike').click(function(){
    $.ajax({
        type:'POST',
        url:'disliked.php',
        data:{dislike:$(this).attr('id')},
        success:function(result){
            $(this).prev('span').append(result);
        }
    });
 });

PHP:nie używaj mysql, jest teraz przestarzały i jest uważany za złą praktykę, nie wiem też, dlaczego używam sprintf w zapytaniu? :S

$DBH=new mysqli('location','username','password','database');
$get=$DBH->prepare("SELECT dislike FROM random WHERE ids=?");
$get->bind_param('i',$_POST['dislike']);
$get->execute();
$get->bind_result($count);
$get->close();
$update=$DBH->prepare('UPDATE random SET dislike=? WHERE ids=?');
$update->bind_param('ii',++$count,$_POST['dislike']);//if you get an error here, reverse the operator to $count++.
$update->execute();
$update->close();
return String $count++;

To zadziała tylko wtedy, gdy w twoim kodzie HTML znajduje się seria przycisków z identyfikatorami pasującymi do tych w twojej bazie danych. Więc

$get=$DBH->prepare('SELECT ids FROM random');
$get->execute();
$get->bind_result($ids);
while($get->fetch()){
    echo"<button class='dislike' id='".$ids."'>Dislike this?</button>";
}

Mam nadzieję, że masz ogólne pojęcie o tym, jak zarządzam twoim systemem przycisków niechęci XD lol




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego zmiana z utf8 na utf8mb4 spowolniła moją bazę danych?

  2. wstawianie ô do bazy danych mysql jest częścią wyników Rhône w Rh

  3. Jak uzyskać i uporządkować najtrafniejsze wpisy z bazy danych z wieloma słowami kluczowymi Laravel 5

  4. Błąd wyrzucania PDO w przypadku użycia MYSQL_ATTR_INIT_COMMAND

  5. PHP, MySQL:nie mogę wyjaśnić tego niezdefiniowanego błędu indeksu