Как отправить данные с помощью JavaScript из формы на сервер и внести изменения в БД

Все вопросы/проблемы по установке и использовании.
Ответить
AntonZ
Сообщения: 35
Зарегистрирован: 18 апр 2022, 14:42
Имя: Антон
Откуда: Россия

Как отправить данные с помощью JavaScript из формы на сервер и внести изменения в БД

Сообщение AntonZ »

Подскажите, нужно сделать, чтобы при вводе в базу картриджа, ранее забитого на другого клиента, выводилось окошко с предложением сменить клиента и кнопками ок и отмена.
Если жмем ок - в базе должен измениться клиент.

Пытаюсь с помощью JavaScript отправить данные из формы на сервер (кусок кода приведен ниже). Если файл script.php лежит в корне - то получается принять эти данные, но не знаю как подключиться из этого файла к БД, чтобы изменить id клиента.
Как я понял, нужно все свои скрипты оформлять как плагины, чтобы не было проблем с подключением к БД и обновлением. Но если я переношу этот файл в папку с тестовым плагином, то выдается ошибка 403.
Как правильно отправить данные для смены клиента на сервер, чтобы потом изменить их в БД?


// Если клиент в заказе отличается от клиента
if ($order_client_id <> $client_id){
//Выводим сообщение
echo '<script> var ChangeClient = confirm("Картридж относится к клиенту ' . $name_client_id . '. Вы уверены, что хотите изменить клиента у картриджа на ' . $client . '?");

if (ChangeClient == true) {
// Если нужно сменить клиента
console.log("Меняем клиента");
$.post("plugins/printbarcode/modules/my_page/actions/script.php", {NewClient: "' . $order_client_id . '", OldClient: "' . $client_id . '",
CartId: "' . $ca_id . '"}, function(data)

{
console.log(data);
// Жмем кнопку сохранить+
$(\'.btn-save-and-add\').trigger(\'click\');

});
}
else {
// Если клиента менять не надо
alert("Клиент не изменен. Ввод в текущий заказ будет прекращен");
//$(".btn-primary-modal-action").prop("disabled",true);
$(\'.btn-close\').trigger(\'click\');
}

</script>';
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Как отправить данные с помощью JavaScript из формы на сервер и внести изменения в БД

Сообщение support »

Попробуйте поле "Ajax запрос" https://docs.rukovoditel.net.ru/index.php?p=99
Там и ввод данных проверяется и запросы можно выполнять.

Еще посмотрите сюда, если нужно ограничить сохранение данных https://docs.rukovoditel.net.ru/index.php?p=119
AntonZ
Сообщения: 35
Зарегистрирован: 18 апр 2022, 14:42
Имя: Антон
Откуда: Россия

Re: Как отправить данные с помощью JavaScript из формы на сервер и внести изменения в БД

Сообщение AntonZ »

Да, я как раз и использую поле "Ajax запрос" в форме, там есть код, который проверяет, есть ли этот картридж в базе на другом клиенте. Но как реализовать вопрос к пользователю - менять или не менять клиента?

Пытаюсь вывести и обработать так:

echo '<script> var ChangeClient = confirm("Картридж относится к клиенту ' . $name_client_id . '. Вы уверены, что хотите изменить клиента у картриджа на ' . $client . '?");

Но не понимаю, как правильно обработать ответ пользователя - если выбрали сменить, отправляю post запрос на сервер.

if (ChangeClient == true) {
// Если нужно сменить клиента
$.post("plugins/printbarcode/modules/my_page/actions/script.php", {NewClient: "' . $order_client_id . '", OldClient: "' . $client_id . '", CartId: "' . $ca_id . '"}, function(data)

Может можно сделать как-то по другому без отправки запроса?

Т.е. как в случае выполнения какого-то условия при заполнении формы, задать пользователю вопрос и обработать ответ с внесением изменений в БД?
Последний раз редактировалось AntonZ 10 сен 2023, 12:12, всего редактировалось 1 раз.
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Как отправить данные с помощью JavaScript из формы на сервер и внести изменения в БД

Сообщение support »

В вашем случае должно быть примерно так:

Код: Выделить всё

index.php?module=printbarcode/my_page/script
AntonZ
Сообщения: 35
Зарегистрирован: 18 апр 2022, 14:42
Имя: Антон
Откуда: Россия

Re: Как отправить данные с помощью JavaScript из формы на сервер и внести изменения в БД

Сообщение AntonZ »

Да, спасибо большое - так заработало.
А может есть какой-то более правильный способ - как в случае выполнения какого-то условия при заполнении формы, задать пользователю вопрос и обработать ответ с внесением изменений в БД?
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Как отправить данные с помощью JavaScript из формы на сервер и внести изменения в БД

Сообщение support »

Это и есть правильный способ:)
AntonZ
Сообщения: 35
Зарегистрирован: 18 апр 2022, 14:42
Имя: Антон
Откуда: Россия

Re: Как отправить данные с помощью JavaScript из формы на сервер и внести изменения в БД

Сообщение AntonZ »

Понял, спасибо большое!
Ответить