Как сделать отправку смс без отправки формы?

Ссылка скопирована
2 ответов

Есть форма для отправки данных, к ней пытаюсь прикрутить подтверждение номера по смс с помощью api. Проблема в том, что при нажатии на кнопку "выслать смс" все данные с формы отправляются. Мне необходимо для отправки смс брать только поле с номером, а отправлять данные с формы только после подтверждения номера.

Как сделать отправку смс без отправки формы?

Дополнительно:

Вам нужно чтобы форма не очищалась или что?

  • Мне необходимо для отправки смс брать только поле с номером

    Ну и вопрос то в чём?

    Нам угадать что именно Вы не знаете? Или с чем у Вас ошибка?
    Угадать какие у Вас там селекторы, куда нужно код отсылать?

  • Вадим, у него беспроезно что-то спрашивать, ни на один из комментариев в своих предыдущих вопросах он не ответил, не тратьте своё время на него. Такие пользователи - раковая опухоль на теле комьюнити
  • Ответы:

    AJAX

    Можно AJAX.

    Но можно отправлять данные на эту же страницу, и опять показывать эту же форму с уже заполненными полями (потому что SMS-кода нет, или он неверный), делая перед показом отправку нужной SMS.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Стас DB Ответ

    Для отправки SMS без отправки формы на странице, можно использовать AJAX запросы с помощью JavaScript. Вот пример реализации на PHP:

    1. Создайте HTML форму, в которой будет кнопка для отправки SMS:

    ```html

    ```

    2. Напишите JavaScript код, который будет отправлять AJAX запрос на сервер для отправки SMS:

    ```javascript
    document.getElementById('sendSMS').addEventListener('click', function() {
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'send_sms.php', true);
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.onreadystatechange = function() {
    if (xhr.readyState === 4 && xhr.status === 200) {
    alert('SMS отправлено!');
    }
    };
    xhr.send();
    });
    ```

    3. Создайте файл send_sms.php, который будет содержать логику отправки SMS через вашу SMS шлюз:

    ```php

    ```

    4. Не забудьте добавить проверку на сервере, чтобы запрос на отправку SMS мог обрабатываться только в случае AJAX запроса:

    ```php
    if ($_SERVER['HTTP_X_REQUESTED_WITH'] !== 'XMLHttpRequest') {
    die('Доступ запрещен');
    }
    ```

    Теперь при нажатии на кнопку "Отправить SMS" будет отправлен AJAX запрос на сервер, который обработает отправку SMS без перезагрузки страницы.

    Другие ответы (1) Ответить на вопрос
    Артём Dev

    Для того чтобы осуществить отправку SMS без отправки формы, можно использовать AJAX запрос к серверу, который будет обрабатывать отправку SMS сообщения. В этом случае, пользователь не будет перезагружать страницу, и SMS будет отправлено асинхронно.

    Вот пример кода на PHP, который можно использовать для отправки SMS сообщения:

     true, 'message' => 'SMS успешно отправлено']);
    } else {
        // Возвращаем ошибку, если запрос не POST
        echo json_encode(['success' => false, 'message' => 'Ошибка: неверный метод запроса']);
    }

    true, 'message' => 'SMS успешно отправлено']); } else { // Возвращаем ошибку, если запрос не POST echo json_encode(['success' => false, 'message' => 'Ошибка: неверный метод запроса']); }

    Для того чтобы отправить SMS сообщение без перезагрузки страницы, можно использовать JavaScript код для отправки AJAX запроса на сервер. Вот пример кода на JavaScript:

    // Пример кода на JavaScript для отправки SMS
    document.getElementById('sendSMSButton').addEventListener('click', function() {
        var phone_number = document.getElementById('phone_number').value;
        var message = document.getElementById('message').value;
     
        var xhr = new XMLHttpRequest();
        xhr.open('POST', 'send_sms.php', true);
        xhr.setRequestHeader('Content-Type', 'application/json');
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4 && xhr.status == 200) {
                var response = JSON.parse(xhr.responseText);
                if (response.success) {
                    alert(response.message);
                } else {
                    alert('Ошибка: SMS не отправлено');
                }
            }
        };
        xhr.send(JSON.stringify({phone_number: phone_number, message: message}));
    });

    // Пример кода на JavaScript для отправки SMS document.getElementById('sendSMSButton').addEventListener('click', function() { var phone_number = document.getElementById('phone_number').value; var message = document.getElementById('message').value; var xhr = new XMLHttpRequest(); xhr.open('POST', 'send_sms.php', true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var response = JSON.parse(xhr.responseText); if (response.success) { alert(response.message); } else { alert('Ошибка: SMS не отправлено'); } } }; xhr.send(JSON.stringify({phone_number: phone_number, message: message})); });

    В данном примере, при клике на кнопку с id "sendSMSButton", данные с полями "phone_number" и "message" отправляются на сервер с помощью AJAX запроса. После получения ответа от сервера, пользователю выводится соответствующее сообщение о результате отправки SMS.

    Таким образом, используя комбинацию PHP и JavaScript, можно реализовать отправку SMS сообщений без отправки формы и перезагрузки страницы.

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно