Как блокировать обновление данных в другой форме при нажатии на текущую?

Как я могу обработать данные из формы в этом коде с использованием функции `isset` для проверки их существования перед обработкой?
Изображение к вопросу
Изображение к вопросу
  • 29 января 2024 г. 9:49
Ответы на вопрос 2
Для того чтобы предотвратить обновление данных в другой форме при нажатии на текущую форму, вам необходимо убедиться, что каждая форма отправляет данные через свой собственный запрос, который можно идентифицировать и обрабатывать отдельно. Для этого каждой форме можно задать уникальный идентификатор или имя для её кнопки отправки.

Например, у вас есть две формы на странице:

```html
<!-- Форма 1 -->
<form method="POST" action="your_script.php">
    <!-- Поля формы 1 -->
    <input type="text" name="data1">
    <input type="submit" name="submit_form1" value="Отправить Форму 1">
</form>

<!-- Форма 2 -->
<form method="POST" action="your_script.php">
    <!-- Поля формы 2 -->
    <input type="text" name="data2">
    <input type="submit" name="submit_form2" value="Отправить Форму 2">
</form>
```
Обратите внимание на имена кнопок: `submit_form1` и `submit_form2`.

Теперь, в `your_script.php`, вы можете проверить, какая форма была отправлена, используя функцию `isset`:

```php
<?php

// Проверка, была ли отправлена форма 1
if (isset($_POST['submit_form1'])) {
    // Обработка данных из формы 1
    $data1 = isset($_POST['data1']) ? $_POST['data1'] : '';
    // Делаем что-то с $data1
}

// Проверка, была ли отправлена форма 2
if (isset($_POST['submit_form2'])) {
    // Обработка данных из формы 2
    $data2 = isset($_POST['data2']) ? $_POST['data2'] : '';
    // Делаем что-то с $data2
}

?>
```
Этот код проверяет, какая из кнопок "Отправить" была нажата, и в зависимости от этого обрабатывает данные из соответствующей формы.

Если вы хотели бы обработать данные безопасно и используете PHP 7.0 или выше, можно использовать новую функцию `filter_input` для получения данных:

```php
$data1 = filter_input(INPUT_POST, 'data1', FILTER_SANITIZE_SPECIAL_CHARS);
$data2 = filter_input(INPUT_POST, 'data2', FILTER_SANITIZE_SPECIAL_CHARS);
```

Или оператор объединения с null (??) для более короткого синтаксиса:

```php
$data1 = $_POST['data1'] ?? '';
$data2 = $_POST['data2'] ?? '';
```

Это эквивалентно использованию `isset`, но значительно упрощает код. В этом случае, если в `$_POST` нет соответствующего значения, переменной будет присвоено пустое значение (`''`).
пых не умеет асинхронно перезагружать страницу , тебе надо заюзать js либу из самого простого это jQuery 

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