Я отправляю ajax-запрос через JavaScript при нажатии кнопки. При нажатии кнопки вызывается функция, из которой выполняется ajax-запрос.
Вот HTML-код, где вызывается функция:
echo "
<form > ";
if ($status == 'regular') {
echo "<input type='hidden' value='".$id."' name='id'>";
echo "<input type='hidden' value='official' name='status'>";
echo "<td><button class='btn btn-info' onclick='UpdateStatus(".$id.",'official')'>UPDATE TO OFFICIAL</button><br><br>";
}
if ($status == 'official') {
echo "<input type='hidden' value='".$id."' name='id'>";
echo "<input type='hidden' value='regular' name='status'>";
echo "<td><button class='btn btn-success' onclick='UpdateStatus(".$id.",'regular')'>UPDATE TO REGULAR</button><br><br>";
}
echo "</form>";
UpdateStatus()
- это функция, в которой естьзапрос ajax. Отсюда я отправляю $id
, который является идентификатором пользователя и статусом, который должен быть обновлен.
Вот функция UpdateStatus ():
<script>
function UpdateStatus(str,str1) {
if (str.length == 0) {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
//ready
};
xmlhttp.open("GET", "update_status.php?id=" + str + "&status=" + str1, true);
xmlhttp.send();
}
}
</script>
str
иstr1
- это идентификатор и статус соответственно. Вот update_status.php
:
<?php
$id = $_REQUEST["id"];
$status = $_REQUEST["status"];
$server_name = "localhost";
$user_name = "root";
$password = "";
$db = "diwan";
$conect = new mysqli($server_name, $user_name, $password, $db);
if($conect->connect_error)
{ die("Connection failed ".$conect->connect_error); }
$sql = "UPDATE user SET status = '$status' WHERE UserID = $id";
if(!$conect->query($sql))
{echo "error in adding record ".$conect->error;}
$result = $conect->query($sql);
?>
И когда я нажимаю на кнопку, я получаю URL-адрес этого формата:
http://localhost/diwan_web/manageusers.php?id=2&status=official
Но данные не обновляютсяв базе данных. Пожалуйста, покажите мне, где я ошибаюсь или что-то пропало. Любое предложение будет высоко оценено.