sql >> Databasteknik >  >> RDS >> Mysql

Hur man uppdaterar MySQL med PHP och AJAX utan att UPPDATERA SIDAN

Ajax i jQuery fungerar så här:

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.
   }
});

Detta kommer inte att uppdatera din sida utan skickar ett "POST" till den angivna webbadressen. På din angivna sida vill du göra vad det är du vill göra och säga returnera ett resultat. I mitt exempel ska jag göra något enkelt:

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

Det är grunderna i en AJAX-förfrågan som använder jQuery.

REDIGERA!

initiera ett AJAX-skript:Jag gissar bara eftersom jag inte känner till dina element i din html eller dina skript vad som helst! Så du måste göra justeringar!

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

PHP:använd inte mysql, det har nu avskrivits och anses vara dåligt bruk, jag vet inte heller varför jag använder sprintf på frågan? :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++;

Detta kommer bara att fungera om det i din HTML finns en serie knappar med ID som matchar dem i din databas. Så

$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>";
}

Hoppas du får den allmänna uppfattningen om hur jag hanterar ditt ogilla-knappsystem XD lol




  1. Gruppera efter med union mysql-valfråga

  2. MySqlCommand-anropsfunktion

  3. Hur man använder MySQL-transaktioner korrekt

  4. Hur man infogar json array i mysql databas