所以基本上我正在使用PHP/AJAX/JavaScript/SQL,我是新手,显示我所有用户的列表,每个用户旁边都有一个按钮,如果数据库中的"启用"列中有1,则显示"启用",如果有0,则显示"禁用"。当我第一次加载页面时,每个用户旁边的按钮都会正确显示,如果用户有"启用"按钮,当我单击它时它确实会启用用户,文本将更改为"禁用",但单击时不会禁用用户。
如果用户在首次加载页面时有一个"禁用"按钮,单击它会将其更改为空白,并且用户不会被禁用。
我不知道我哪里出错了。我将在下面包含我的代码。
在管理页面中启用/禁用按钮的代码.php
if($enabled=='1'){
$allUsers.='<button id="adminButton_'.$username.'" onclick="adminHandler(''disable'','''.$username.''',''adminButton_'.$username.''')">disable</button>';
}
else if($enabled=='0')
{
$allUsers.='<button id="adminButton_'.$username.'" onclick="adminHandler(''enable'','''.$username.''',''adminButton_'.$username.''')">enable</button>';
}
adminPage 中的 adminHandler 函数
<script type="text/javascript">
function adminHandler(action,username,elem){
var conf = confirm("Press OK to '"+action+"' this user.");
if(conf != true){
return false;
}
_(elem).innerHTML = "processing ...";
var ajax = ajaxObj("POST", "Includes/adminProcessing.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
if(ajax.responseText == "enable_ok"){
_(elem).innerHTML = "Disable";
} else if(ajax.responseText == "disable_ok"){
_(elem).innerHTML = "Enable";
} else {
_(elem).innerHTML = ajax.responseText;
}
}
}
ajax.send("action="+action+"&username="+username);
}
"管理处理.php"页
if (isset($_POST['action']) && isset($_POST['username']))
{
$username = $_POST['username'];
if($_POST['action'] == "enable")
{
$sql = "UPDATE users SET enabled='1' WHERE username='$username' LIMIT 1";
$query = mysqli_query($conn, $sql);
mysqli_close($conn);
echo "enable_ok";
exit();
}
else if($_POST['action'] == "disabled"){
$sql = "UPDATE users SET enabled='0' WHERE username='$username' LIMIT 1";
$query = mysqli_query($conn, $sql);
mysqli_close($conn);
echo "disable_ok";
exit();
}
阿贾克斯文件
function ajaxObj(meth, url) {
var x = new XMLHttpRequest();
x.open(meth, url, true);
x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
return x;
}
function ajaxReturn(x) {
if (x.readyState == 4 && x.status == 200) {
return true;
}
}
您的"adminHandler"正在传递"禁用",但您正在检查"已禁用"。