Появляется новая страница с кодом php что делать?

Имеются три формы

html

<form method="POST" action="server.php" class="feed-form ">
                            <input class="feed-phone" type="tel" name="phone" required placeholder="+7 (___) ___ __ __">
                            <button class="promo-button" type="submit">Вызвать мастера</button>
                        </form>


<form class="consultation-form" method="POST" action="server.php">
                    <input class="consultation__input" type="tel" name="phone" required
                        placeholder="+7 (___) ___ __ __">
                    <button class="consultation__button" type="submit">Оставить заявку</button>
                </form>


<form class="modal__form" method="POST" action="server.php">
                    <input class="modal__input" type="tel" name="phone" required placeholder="+7 (___) ___ __ __">
                    <button class="modal__button" type="submit">Оставить заявку</button>
                </form>


JS

const ajaxSend = (formData) => {
    fetch('server.php', {
            method: 'POST',
            headers: {
                'Content-type': 'application/json: charset=utf-8',
            },
            body: formData
        })
        .catch(error => console.error("Ошибка"))

};

var forms = document.querySelectorAll(".form"),
    index, form;

for (index = 0; index < forms.length; index++) {
    form = forms[index];
    form.addEventListener('click', function (e) {
        e.preventDefault();
        const formData = new FormData();
        const inputs = document.querySelectorAll("form input[type='tel']");
        for (let item of inputs) {
            formData.append(item.name, item.value);

            ajaxSend(formData);
            this.reset();
        };
    });
};


PHP

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {

    if ( !empty($_POST["phone"]))
    {
        if (isset($_POST['phone'])) {
            if (!empty($_POST['phone'])){
                $uphone = strip_tags($_POST['phone']);
                $uphoneFieldset = "Телефон:%20";
            }
        }

        
        $token = "Зашифрован";
        $chat_id = "Зашифрован";
        $sitename = "Kzn-master"; // Указываем название сайта
        $arr = array(
            
            'Лид с сайта: ' => $sitename,
            $uphoneFieldset => urlencode('+'). $uphone
        );
        foreach($arr as $key => $value) {
            $txt .= "<b>".$key."</b>".$value."%0A";
        };
        $sendToTelegram = fopen("https://api.telegram.org/bot".$token."/sendMessage?chat_id=".$chat_id."&parse_mode=html&text=".$txt,"r");


        if ($sendToTelegram == 'false') {
            echo '<p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p>';

        } else {
            echo '<h3 class="success">Спасибо! В ближайшее время наш менеджер свяжется с Вами.</h3>';
        }
    } else {
        var_dump($_POST);
    }
} else {
    header ("Location: "); // главная страница вашего лендинга
}


?>


Почему при попытке отравить заявку, переход осуществляется на страницу server.php?

62b2132f218b8665552085.png
  • Вопрос задан
  • 216 просмотров
Пригласить эксперта
Ответы на вопрос 2
ddv88
@ddv88
Binance Futures
action="server.php"
Удалить
form.addEventListener('click', function (e)
Заменить на submit
document.querySelectorAll(".form")
Плохо. Правильно по ID.
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
var forms = document.querySelectorAll(".form")
Чет я не увидел в коде ни одного элемента с классом form... Если предполагалось выбрать формы, то все таки стоит вешать слушатель на субмит, а не на клик...

А страница появляется по тому что превентДефаулт на форму не вешается и просто форма уходит обычным постом.
Ответ написан
Ваш ответ на вопрос

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

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