0
我正在創建一個關注按鈕,或多或少像twitter一樣。從PHP文件返回一個布爾值到AJAX one - Follow按鈕
您點擊該按鈕,而您跟隨該用戶。
您再次點擊,你取消關注用戶。
我已經做了這個代碼
HTML
<div data-following="false" class='heart canal'><i class='fa fa-heart awesome'></i></div>
AJAX
$(document).ready(function() {
$(".heart.canal").click(function() {
if($(".heart").attr("data-following") == '0'){
$(".heart").attr('data-following', '1');
} else if($(".heart").attr("data-following") == '1'){
$(".heart").attr('data-following', '0');
}
var usuario = $(".left h4").attr("data-id");
var seguidor = $("#user_account_info .profile_ball").attr("data-id");
var seguir = $(".heart").attr("data-following");
$.ajax({
type: "POST",
url: "./include/php/follow.php",
data: { user: usuario, follower: seguidor, follow: seguir },
success: function(response) {
if(response == '0'){
$(".heart").addClass("like");
} else if(response == '1'){
$(".heart").removeClass("like");
}
}
});
return false;
});
});
PHP
<?php
$dsn = "mysql:host=localhost;dbname=tapehd;charset=utf8";
$usuario = "root";
$contraseña = "";
$conexion = new PDO($dsn, $usuario, $contraseña);
$resultado = null;
$sql = "";
$user = $_POST["user"];
$seguidor = $_POST["follower"];
$follow = $_POST["follow"];
if($follow == '0'){
$sql = "INSERT INTO seguidores(id_canal, id_seguidor) VALUES('$user', '$seguidor')";
} else if($follow == '1'){
$sql = "DELETE FROM seguidores WHERE id_canal = '$user' AND id_seguidor= '$seguidor'";
}
if($conexion){ $resultado = $conexion->query($sql); }
return $follow;
?>
問題是,每次點擊按鈕,我只在數據庫中插入數據。我的意思是,我只創造如下。 當我點擊兩次,它不刪除後續。
無論如何要在data-following = true
時插入數據並在data-following = false
刪除它?
修訂
我已經改變了布爾值false和2串,0和1,但它不工作,反正真。
[你的腳本是對SQL注入攻擊的風險(http://stackoverflow.com/問題/ 60174/how-can-i-prevent-sql -injection-in-php) –
你看過你的錯誤日誌嗎?你沒有在這裏做任何錯誤檢查,並假設你的查詢正常工作。 –
表單提交是字符串。沒有布爾人,沒有整數,沒有斑點,沒有blah blahblah。只有字符串。如果你想讓'$ follow'來測試等於一個php false,那麼'$ _POST ['seguir']'必須包含一些PHP規則會產生「false」的東西。那將是'0','0.0'或一個空字符串。 ** WORD **'false'不會測試相等,因爲那會是''false'== false' –