所以,我有一个用户列表,我使用PHP生成HTML。我在每一行都包含一个按钮以禁止用户访问应用程序,我想使用JQuery调用AJAX对象将数据库更新到名为“usrStatus”的字段,但每当我点击按钮时,警报“成功被称为“确实出现了,但数据库上没有任何反应。
我错过了什么?
<button id="block-1" type="button" class="btn btn-danger ublock" name="blockUser" data-toggle="tooltip" data-placement="top" title="Block User">
<i class="fa fa-lock" aria-hidden="true"></i>
</button>
$('.ublock').click(function() {
var $userId = $(this).attr('id').slice(9);
if ($(this).find('i').hasClass('fa-lock')) {
$(this).toggleClass('btn-success').toggleClass('btn-danger');
$(this).find('i').toggleClass('fa-lock').toggleClass('fa-unlock-alt');
$.ajax({
method: 'POST',
url: '/Websites/Mahle/Resources/PHP/Usuarios/bloquearUsuario.php',
data: {idUsuario: $userId, status: "Bloqueado"},
success: function(result) {
alert('Successfully called!!');
},
error: function(exception) {
alert('Exception:'+exception);
}
})
}
});
include('/Applications/MAMP/htdocs/Websites/Mahle/Resources/PHP/loginDatabase.php');
$qry = "UPDATE MahlePruebas.Usuarios SET usrStatus = ? WHERE idUsuarios = ?";
$usrUpdate = $dbLogin->prepare($qry) or die('Error preparando query (bloquear usuario): ' . $dbLogin->error . " (".$dbLogin->errno.")" . "\n");
$usrUpdate->bind_param("ss",
$_POST['idUsuario'],
$_POST['status']
) or die('Error preparando query (bloquear usuario): ' . $dbLogin->error . " (".$dbLogin->errno.")" . "\n");
$usrUpdate->execute() or die('Error preparando query (bloquear usuario): ' . $dbLogin->error . " (".$dbLogin->errno.")" . "\n");
答案 0 :(得分:1)
你有
$qry = "UPDATE MahlePruebas.Usuarios SET usrStatus = ? WHERE idUsuarios = ?";
首先?是状态,第二?适用于idUsuarios
在bind_param
中的 ... idUsuario
然后status
...所以,我认为这些需要颠倒
所以而不是
$usrUpdate->bind_param("ss",
$_POST['idUsuario'],
$_POST['status']
)
使用
$usrUpdate->bind_param("ss",
$_POST['status'],
$_POST['idUsuario']
)