С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9

Размещение нескольких форм на одной странице

01.11.2015, 16:35. Показов 4367. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Очень нужна помощь в размещении нескольких идентичных форм на одной странице. каждая форма отвечает за заказ определенной услуги, поэтому приходящая на email информация должна быть разная. Все формы содержат 2 поля (имя и email) и кнопку отправки:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<form action="contact.php" name="contactform" method="post">        
<input type="text" name="first_name" placeholder="Ваше имя">
<input type="text" name="email" placeholder="Ваш email"> 
<input type="submit" name="submit" value="Заказать" >  
</form>
Код в файле contact.php:
<div id="contentForm">
 
            <?php
            header('Content-Type: text/html; charset=utf-8');
            
            
            if(isset($_POST['email'])) {
                 
                
                 
                $email_to = "na24@mail.ru";
                 
                $email_subject = "Сообщение с сайта";
                 
                   
                $first_name = $_POST['first_name']; // required 
                $email_from = $_POST['email']; // required
                 
                $email_message = "Информация о пользователе.\n\n";
                 
                    
                function clean_string($string) {
                    $bad = array("content-type","bcc:","to:","cc:","href");
                    return str_replace($bad,"",$string);
                }
                 
                 
                $email_message .= "Имя: ".clean_string($first_name)."\n";
                $email_message .= "Email: ".clean_string($email_from)."\n";
                 
                     
                // create email headers
                 
                $headers = 'From: '.$email_from."\r\n".
                 
                'Reply-To: '.$email_from."\r\n" .
                 
                'X-Mailer: PHP/' . phpversion();
                 
                @mail($email_to, $email_subject, $email_message, $headers); 
                 
                ?>
                 
                <!-- Message sent! (change the text below as you wish)-->
                <div class="container">
                    <div class="row">
                        <div class="col-sm-6 col-sm-offset-3">
                            <div id="form_response" class="text-center">
                                <img class="img-responsive" src="img/thumbs/mail_sent.png" alt="image" />
                                <h1>Поздравляем!!!</h1>
                                <p><b><?=$first_name;?></b>, Ваше письмо успешно отправлено.</p>
                                <a class="btn btn-theme" href="index.html">Вернуться на сайт</a>
                            </div>
                        </div>  
                    </div>                  
                </div>
                 <!--End Message Sent-->
 
                <?php
                 
                }
 
                ?>
 
        </div>
Какие бы манипуляции ни выполнялись, итог один - после нажатия Отправить курсор перескакивает в самую первую форму на страницу, в самый первый input.
Посоветуйте, как решать эту задачу. заранее спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.11.2015, 16:35
Ответы с готовыми решениями:

Несколько форм обратной связи на одной странице
Всем доброго времени суток. Не могу настроить на лендинге несколько форм обратной связи. Одна работает при копировании кода, а другие...

Размещение нескольких форм на одной странице
Доброго всем времени суток. Возможно ли поставить две формы на одной странице? К примеру - форма входа и регистрации посетителя. При...

Отбор одной из нескольких форм на странице и работа с ней
Всем доброго дня. Подскажите, какой необходимо прописать код в cs файле, чтобы он на странице aspx обрабатывал только конкретную...

14
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
01.11.2015, 17:33
Na24, Во-первых, выделяйте php-код и html-разметку соответствующими тегами на форуме, иначе читать невозможно.
Во-вторых, у Вас тут всего одна форма.
В-третьих, у других форм имена должны быть другими.
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9
01.11.2015, 17:39  [ТС]
Извините за некорректное размещение, в первый раз...
Аналогичная тема уже поднималась Несколько форм обратной связи на одной странице
Решения, к сожалению, не было найдено.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
01.11.2015, 18:45
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<form action="contact.php" name="contactform" method="post">
        <input type="text" name="first_name" placeholder="Ваше имя">
        <input type="text" name="email" placeholder="Ваш email">
        <input type="submit" name="submit" value="Заказать" >
    </form>
    <form action="contact.php" name="contactform_1" method="post">
        <input type="text" name="first_name" placeholder="Ваше имя">
        <input type="text" name="email" placeholder="Ваш email">
        <input type="submit" name="submit_1" value="Заказать" >
    </form>
    <form action="contact.php" name="contactform_2" method="post">
        <input type="text" name="first_name" placeholder="Ваше имя">
        <input type="text" name="email" placeholder="Ваш email">
        <input type="submit" name="submit_2" value="Заказать" >
    </form>
<?php 
if(isset($_POST['submit'])){
    echo 'это форма 1';
}
if(isset($_POST['submit_1'])){
    echo 'это форма 2';
}
if(isset($_POST['submit_2'])){
    echo 'это форма 3';
}
 
?>
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9
01.11.2015, 19:00  [ТС]
Извините за неопытность, но что конкретно из файла php, который был мною представлен, должно быть прописано внутри echo? В данном файле - сообщение-заголовок для письма, а также сообщение для пользователя об удачной отправке. Это все необходимо поместить внутри echo?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
01.11.2015, 19:40
Цитата Сообщение от Na24 Посмотреть сообщение
каждая форма отвечает за заказ определенной услуги
а нафига куча форм. форма одна, в ней поле hidden в котором id услуги. форма выводится в всплывающем окне.
возле каждой услуги кнопка заказать. в ней атрибут типа data-id, в котором находится идентификатор услуги.
вешаем onclick на кнопку. при клике на кнопку открываем форму и в поле type="hidden" добавляем значение атрибута data-id кнопки.
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9
01.11.2015, 20:04  [ТС]
Так хочет заказчик... Одна услуга - одна форма. Всплывающую форму не хочет.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
01.11.2015, 20:15
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    <form action="contact.php" name="contactform" method="post">        
        <input type="text" name="first_name" placeholder="Ваше имя">
        <input type="text" name="email" placeholder="Ваш email"> 
        <input type="hidden" name="servise" value="servise_1">
        <input type="submit" name="submit" value="Заказать" >  
    </form>
    <form action="contact.php" name="contactform_1" method="post">        
        <input type="text" name="first_name" placeholder="Ваше имя">
        <input type="text" name="email" placeholder="Ваш email"> 
        <input type="hidden" name="servise" value="servise_2">
        <input type="submit" name="submit_1" value="Заказать" >  
    </form>
    <form action="contact.php" name="contactform_2" method="post">        
        <input type="text" name="first_name" placeholder="Ваше имя">
        <input type="text" name="email" placeholder="Ваш email"> 
        <input type="hidden" name="servise" value="servise_3">
        <input type="submit" name="submit_2" value="Заказать" >  
    </form>
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<div id="contentForm">
    <?php
        if(isset($_POST['email'])) {
            $email_to = "na24@mail.ru";
            $email_subject = "Сообщение с сайта";
            $first_name = $_POST['first_name']; // required 
            $email_from = $_POST['email']; // required
            $email_message = "Информация о пользователе.\n\n";
 
            function clean_string($string) {
                $bad = array("content-type","bcc:","to:","cc:","href");
                return str_replace($bad,"",$string);
            }
 
            $email_message .= "Имя: ".clean_string($first_name)."\n";
            $email_message .= "Email: ".clean_string($email_from)."\n";
            $email_message .= "Услуга: ".clean_string($_POST['servise'])."\n";
 
            // create email headers
 
            $headers = 'From: '.$email_from."\r\n".
            'Reply-To: '.$email_from."\r\n" .
            'X-Mailer: PHP/' . phpversion();
             $res = mail($email_to, $email_subject, $email_message, $headers); 
            ?>
 
            <!-- Message sent! (change the text below as you wish)-->
            <div class="container">
                <div class="row">
                    <div class="col-sm-6 col-sm-offset-3">
                        <div id="form_response" class="text-center">
                            <img class="img-responsive" src="img/thumbs/mail_sent.png" alt="image" />
                            <?php if($res){?>
                                <h1>Поздравляем!!!</h1>
                                <p><b><?=$first_name;?></b>, Ваше письмо успешно отправлено.</p>
                            <?php }else{?>
                                <h1>Что-то пошло не так</h1>
                                <p><b><?=$first_name;?></b>, Ваше письмо отправить не удалось.</p>        
                            <?php }?>
                            <a class="btn btn-theme" href="index.html">Вернуться на сайт</a>
                        </div>
                    </div>  
                </div>                  
            </div>
             <!--End Message Sent-->
    <?php } ?>
</div>
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9
01.11.2015, 20:58  [ТС]
Ситуация не меняется. Первая форма работает, все остальные - нет. При заполнении и отправке других форм, курсор перепрыгивает на первую форму и подсвечивает первый input, как при валидации. Мне пришло личное сообщение о том, что проблема в подсветке синтаксиса. Возможно ли такое и знаете ли как это можно решить?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
01.11.2015, 21:08
Na24, скорее всего валидация сделана на JS, нужно анализировать JS-скрипты.
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9
01.11.2015, 21:14  [ТС]
Валидация сделана с помощью jquery.validate.js
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$(document).ready(function(){
    
        "use strict";
 
        $(".form_mobile form").validate({
            rules:{ 
                first_name:{
                    required: true,
                    minlength: 2,
                    maxlength: 16,
                },
                email:{
                        required: true,
                        email: true,
                } 
            },
            errorPlacement: function(error, element) {}
        });             
        
    });
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
01.11.2015, 21:36
как вариант, повесить валидацию на каждую форму отдельно.
а вообще, эти проверки можно сделать с помощью html
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9
01.11.2015, 21:40  [ТС]
валидация как раз на каждой форме отдельно
попробуем html вариацию как вариант
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
01.11.2015, 21:59
Цитата Сообщение от Na24 Посмотреть сообщение
валидация как раз на каждой форме отдельно
не может быть. чудес не бывает. проверил, если на каждой отдельно все работает.
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9
01.11.2015, 22:15  [ТС]
С html валидацией все работает, за исключением самой валидации, safari на нее не реагирует. Это, конечно, уже не столь критично, но вдруг есть решение?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.11.2015, 22:15
Помогаю со студенческими работами здесь

Размещение представлений на одной странице
Имеется два представления с разными моделями (первая модель таблица для хранения инфы по объектам, другая по сути то же самое) //...

Обработка нескольких форм на странице
Добрый день! Возникла такая проблема. На странице 2 формы, отправляю данные с помощью ajax. Первая форма работает, все нормально. Когда...

Размещение нескольких картинок в одной ячейке
Хочу расположить в одной ячейке несколько картинок Нужно что бы получилось что-то типа этого: Ширина ячейки не фиксированная

Несколько форм на одной странице
Здравствуйте! Типа страницу регистрации, в которой есть две разные формы(для пациентов и врачей) разделенные nav-tab'ами. В зависимости...

Обработка двух форм на одной странице
Здравствуйте, форумчане! На странице две формы, заполняю первую, данные уходят ajax’ом, в ответ приходит id новой записи ajax’ом, это id ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru