Как сделать статус заказа?

Нужна кнопка, которая будет делать запрос в базу данных, и в зависимости от значения в БД менятся, и делать уже другой запрос.
ну к примеру:
Изначально значение status в БД = 1
В таблице, где выводятся строки будет кнопка, которая будет менять значение status именно для этой строки (ну или этого id):
<a class='btn btn-xs' name=\"status\" href=\"admin.php?id=".$row["id"]"\">
{текст}
</a>

если status=1, то текст=в ожидании
если status=2, то текст=в процессе
если status=3, то текст=выполнено (тут кнопка должна стать не кликабельна больше)

Не знаю как сделать так, что бы запросы были разные (ну, что бы передавали разные status'ы, в зависимости от значения)
Проще говоря хочу сделать кнопку которая будет менять статус и при этом меняться сама, и выполнять запросы.
Хочу сделать так, что бы при этом страница не обновлялась (ну или хотя бы данные в url не вписывались)
Как можно это реализовать?

Надо примерно это: Как сделать выполнение запроса по нажатию на кнопку?
Только со всем изложеным выше.
Да и просто из этого примера почему то не получилось.
  • Вопрос задан
  • 1326 просмотров
Пригласить эксперта
Ответы на вопрос 2
shultais
@shultais
Обучаю программированию на Python и SQL
1. Вот вы сгенерировали кнопку с помощью PHP и теперь видите её в браузере.
2. Теперь нужно повесить событие на эту кнопку с помощью JQuery. Для этого сначала добавим к ней поле id, чтобы было проще обращаться
<a class='btn btn-xs' id='status-button'  name="status" href="admin.php?id=755">
    в ожидании</a>

теперь собственно сам JQuery код
var button = $("#status-button");
button.on("click", function () {
    // Отправляем AJAX запрос на сервер
    $.ajax({
            url: button.attr("href"),
            type: "POST",
            dataType: "json",
            success: function (response) {
                 button.html(response["status-text"]);
            }
        });
    return false;
})

AJAX запрос будет отправляться по адресу /admin.php?id=755, так как url: button.attr("href") берет значение из атрибута href вашей кнопки.
Запрос будет отправляться методом POST и ожидать JSON ответа.

3. Теперь вам нужно написать скрипт на PHP, который обработает запрос: внесет данные в базу, и вернет в JSON status-text с текстом нового статуса.
Ответ написан
nskarl
@nskarl
Вообще дизайнер
<a class='btn btn-xs' onclick="changestatus(755, this)">в ожидании</a>

<script>
function changestatus(id, elem){
	$.post(
		'/ajax/admin/,
		{id: id},
		function(data){
			if(data){
				console.log(data.response) //Здесь обработка ответа от сервера через JS или JS+JQUERY
			}
		},
		'JSON'
	);
}
</script>


ajax.php:
public function admin()
	{
		$id = $_POST('id');
		
		$data['response']//Здесь обработка ID через MySQL и\или PHP

		echo json_encode($data);
	}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы