因此,我有一个用户列表,我正在使用 PHP 将其生成为 HTML。我在每一行都包含一个按钮以禁用用户对应用程序的访问,我想使用 JQuery 调用 AJAX 对象以将数据库更新到名为“usrStatus”的字段中,但是每当我单击该按钮时,警报“成功被调用”确实出现,但数据库没有任何反应。
我错过了什么?
调用 AJAX 的 HTML 按钮。
<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>
JQuery 函数
$('.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);
}
})
}
});
PHP 代码 "bloquearUsuario.php"
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");
最佳答案
你有
$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']
)
关于javascript - JQuery Ajax 调用什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41582236/